55问答网
所有问题
8086汇编语言段间和段内,SP分别加多少
如题所述
举报该问题
推荐答案 2019-01-17
段内调用子程序时,栈顶的1个字保存的是返回的ip,传递的参数 的sp要多加2。
段间调用子程序时,栈顶的2个字分别保存了返回的ip和cs,传递参数时的sp要多加4。
但不会用sp+2、sp+4这种格式,而是在进入子程序时,先将当前sp保存到bp中,用bp作为基点获得传递的参数,因为sp总是在变化之中。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/eeecGceFcRRGLQ4FcQ.html
相似回答
汇编
进栈时
sp
怎么变化
答:
CPU为8086/8088的话,
是进栈时SP-2,出栈时SP+2
.
汇编语言
改错题
答:
1.PUSH AH ;不支持AH,此处应为16位寄存器/存储器/段寄存器 3.
8086
的堆栈操作以字为单位,数据入栈后
,SP
自动减1,数据出栈后,SP自动加1.应为:8086的堆栈操作以字为单位,数据入栈后,SP自动减2,数据出栈后,SP自动加2.参考:PUSH指令格式 PUSH r16/m16/seg ;SP←SP-2,SS:[SP]←r16/m16/seg ...
汇编语言SP
=SP
答:
16位汇编:PUSH 16位(寄存器/存储器) ;
SP=SP-2 POP 16位(寄存器/存储器) ; SP=SP+2SP是栈顶指针指示器(16位)
;32位汇编:PUSH 16位/32位(寄存器/存储器/立即数) ; ESP=ESP- 2/4POP 16位/32位(寄存器/存储器/立即数) ; ESP=ESP+ 2/4ESP是栈顶指针指示器(32位); 现在的程序都...
8086汇编
地址内容的变化?
答:
地址内容的变化是由
汇编
指令操作内存的时候产生的。
SP
寄存器的设置会影响地址中的内容,最终导致内存中原有数据被改变。该汇编指令mov ax,stacksg; mov ss,ax; mov
sp,
32将存储区指针从初始段首地址加上32后,将其目标地址存入ES寄存器中,并将其内容存入存储区中。因此造成了存储区中数据的变化。
汇编
(关于PUSH的
SP
问题)
答:
同理SP=SP-2,此时SP=00FCH 物理地址=SS*10H+SP=3000H*10H+00FCH=300FCH CALL L1 调用子
程序
即过程调用,为了保护现场,会压栈保存断点,
段内
调用,说明L1的属性为NEAR,只需保存IP
,SP
=SP-2,但是如果是
段间
调用则需要保存CS和IP 那么SP=SP-4.不管怎么样,在执行完RET后,要恢复现场,即...
大家正在搜
8086汇编语言编程软件
用汇编语言编写1加到100
8086汇编语言jz
8086汇编语言用什么软件
汇编语言课程设计8086
8086汇编语言程序设计答案
8086汇编语言中CMD什么意思
汇编语言实现1加到100
c加加是汇编语言吗
相关问题
急急! 用8086汇编语言编程,把数据段内的两个字数据相加,...
汇编语言SP=SP-2,(SP+1),(SP)=IP是什么意...
求问IBM8086汇编语言中各通用寄存器的默认段
汇编语言,请问变量定义在附加段和定义在数据段有什么区别啊?
在8086微处理中,指令分配给寄存器SP的默认段寄存器是--...
汇编语言。在内存中,每一小段的大小为多少 答案是16B。为什...
汇编语言程序最多有几个段,它们分别是什么?
8086/8088系统中,存储器为什么要分段,一个段的最大和...