汇编语言(王爽)检测点10.1答案及解析

题目:补全程序,实现从内存1000:0000处开始执行程序

assume cs:code

stack segment
 db 16 dup (0)
stack ends

code segment
start:mov ax,stack
      mov ss,ax
      mov sp,16  ;初始化栈
      mov ax,1000H  ;cs的值
      push ax
      mov ax,0  ;IP的值
      push ax
      retf
code ends
  end start
      

解析:
CPU执行retf指令时,进行四步操作:

  1. (IP)=((ss)*16+sp)
  2. (sp)=(sp)+2
  3. (CS)=((ss)*16+sp)
  4. (sp)=(sp)+2
    也就是相当于进行
    pop IP
    pop CS

这样就很容易理解啦。

你可能感兴趣的:(汇编语言)