汇编语言关于PUSH的问题

假设(SP)=0100H,(SS)=2000H。执行PUSH BP指令后,栈顶的物理地址是( )
答案是200FEH
怎么得出来的?
谢谢

sp指针指向0100 但是【栈底】为2000:00FF,所以push后sp指向00FE
即物理地址为2000:00FE
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-29
1楼回答正确~

push是什么指令
push指令就是汇编语言指令 栈。

汇编语言关于PUSH的问题
sp指针指向0100 但是【栈底】为2000:00FF,所以push后sp指向00FE 即物理地址为2000:00FE

汇编push和pop指令
学习使用汇编语言中的push和pop指令进行栈操作,了解栈的基本概念以及这两条指令在栈操作中的作用。push指令用于将寄存器中的数据压入栈中,pop指令则用于从栈中弹出数据到寄存器中。具体操作如下:push寄存器:将指定寄存器的内容压入栈顶。pop寄存器:从栈顶弹出数据到指定寄存器中。下面通过一段汇编代码演...

汇编语言 PUSH 用法疑问
如果,16进制的数是一A - F之间的字母开头的话,必须在前面加上0 即push 0FFFFh,push不一定是将16位源操作数压入栈,32位的程序,就是压入32位的数值

关于汇编语言中的PUSH问题。
PUSH CX在堆栈保存CX,循环利用CX,结合LOOP COMP实现整个字符系列遍历检测(所谓的内循环)取出CX赋予DX,--DX,检测是否为零,即是否还有字符需要检测 【事实上push,pop这些操作你只需当它是参数传递与保存即可】事实上 第二行与第三行push cx,pop dx完全没意义,可以去掉 事实上,在NEXT1子指令...

汇编语言中的PUSH的用法
PUSH的操作过程是: (SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置。此处的((SP))<--OPRD,也可以理解为:[(SS)*16+(SP)]<--OPRD 或 [SS:SP]<--OPRD 示例: PUSH DX PUSH BP PUSH CS PUSH DATA1 PUSH ALFA...

汇编(关于PUSH的SP问题)
MOV AX,N1 PUSH AX 这是第一次进行压栈,SP=SP-2,存储器是8位的,而AX是16位的,高八位即AH存在高地址,而低八位AL存在低地址,SS=3000H,SP-2=00FEH 物理地址=SS*10H+SP=300FEH MOV AX,N2 PUSH AX 同理SP=SP-2,此时SP=00FCH 物理地址=SS*10H+SP=3000H*10H+00FCH=300FCH CAL...

汇编语言问题
PUSH #54H ;push #53H,是将立即值53H放入堆栈..这是编译不通过的,同意楼上,但是题是这样出也没有办法,只能顺着做 PUSH指令是执行一次后SP自加1的,这是解题重点,PUSH #53H即将#53H存为40H地址SP加1 同理PUSH #54H即将#54H存为41H,那么这时41H里的数就是#54H了,SP再自加1...

汇编语言里面关于 push mov lea的一点小问题。
push 的后面,应该写16位的操作数,可以是寄存器名称,如:push AX push BX ……--- mov eax,[xxx],是把逗号右边,当做源,左边当做目的。80x86 的汇编,都是这样的。其它的汇编语言,也有用左边的当做源。

汇编语言中的PUSH的用法
PUSH的操作过程是:(SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置。此处的((SP))<--OPRD,也可以理解为:[(SS)*16+(SP)]<--OPRD 或 [SS:SP]<--OPRD 示例:PUSH DX PUSH BP PUSH CS PUSH DATA1 PUSH ALFA[BX...

相似回答