汇编语言(王爽)第二版检测点10.1
程序员文章站
2024-02-02 15:03:22
...
检测点10.1
补全程序,实现从内存1000:0000处开始执行指令。
程序
;检测点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
push ax
mov ax,0
push ax
retf
code ends
end start
运行
执行reft指令时,相当于进行:
pop ip
pop cs
根据栈先进后出原则,应先将段地址cs入栈,再将偏移地址ip入栈。
C:\DOCUME~1\SNUSER>debug jc10-1.exe
-u
0C50:0000 B84F0C MOV AX,0C4F
0C50:0003 8ED0 MOV SS,AX
0C50:0005 BC1000 MOV SP,0010
0C50:0008 B80010 MOV AX,1000
0C50:000B 50 PUSH AX
0C50:000C B80000 MOV AX,0000
0C50:000F 50 PUSH AX
0C50:0010 CB RETF
0C50:0011 3986FEFE CMP [BP+FEFE],AX
0C50:0015 737D JNB 0094
-g 0010
AX=0000 BX=0000 CX=0021 DX=0000 SP=000C BP=0000 SI=0000 DI=0000
DS=0C3F ES=0C3F SS=0C4F CS=0C50 IP=0010 NV UP EI PL NZ NA PO NC
0C50:0010 CB RETF
-t
AX=0000 BX=0000 CX=0021 DX=0000 SP=0010 BP=0000 SI=0000 DI=0000
DS=0C3F ES=0C3F SS=0C4F CS=1000 IP=0000 NV UP EI PL NZ NA PO NC
1000:0000 6E DB 6E
-