(CS)=3500H,(IP)=2000H,(SS)=1000H,(SP)=50H,返回主程序的断点地址为2000H:1000H,问执行“RET 4”指令后上述4个寄存器的内容各是多少。
【正确答案】:(CS)=2000H,(IP)=1000H,(SS)=1000H,(SP)=0058H
【题目解析】:返回地址(即断点地址)即在子程序调用时入栈保存的断点地址IP值和CS值,因此执行返回指令后,(CS)=2000H,(IP)=1000H。无论有没有执行返回指令,SS即堆栈段寄存器的内容是不变的,即(SS)=1000H,堆栈栈顶4个单元的内容为返回地址,再下面4个单元的内容为在调用子程序之前预先存放在堆栈中,当子程序运行结束,要返回子程序时,此4个数据已无用,因此在执行RET指令,恢复断点,即返回地址出栈后,(SP)=0054H,按照RET 4指令,堆栈指针还要增4,所以(SP)=0058H,恢复到4个参数入栈以前的值。
(CS)=3500H,(IP)=2000H,(SS)=1000H,(SP)=50H,返回主程序的断点地址为2000H:1000H
- 2024-09-08 13:23:58
- 汇编语言程序设计(02321)