欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

汇编语言(王爽)第二版检测点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

-