我用debug加载程序后,用g命令运行到MOV AX,4100H前
-g 001d
AX=0B9B BX=0000 CX=0052 DX=0000 SP=0010 BP=0000 SI=0000 DI=0000
DS=0B9B ES=0B8B SS=0B9D CS=0B9E IP=001D NV UP EI PL NZ NA PO NC
0B9E:001D B8004C MOV AX,4C00
我看过很人的结果都是DS和CS,SS 的绝对差值都为1 而我的确不是!为什么啊!
源代码是:
assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,ocbah,0987h
data ends
stack segnent
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
push ds:[0]
push ds:[2]
pop ds:[2]
pop ds:[0]
mov ax,4c00h
int 21h
code ends
end start