汇编语言(王爽)第二版检测点10.1

检测点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

-

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