C:\masm>debug 1.exe ;用debug加载程序
-r
AX=0000 BX=0000 CX=0042 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B2A ES=0B2A SS=0B3A CS=0B3C IP=0000 NV UP EI PL NZ NA PO NC
0B3C:0000 B83B0B MOV AX,0B3B ;第一条指令,从ds,ss,cs中的值可以看
出,cs-ds=12 cs-ss=2 因为是段地址,所以*16.(10h)
-u
0B3C:0000 B83B0B MOV AX,0B3B ;对应:mov ax,stack这是cpu根据
0B3C:0003 8ED0 MOV SS,AX ;一些信息(暂时不理)给出的ss
0B3C:0005 BC1000 MOV SP,0010 ;用mov 段寄存器,寄存器。
;sp,0010,书中是16,这里是16进制的
0B3C:0008 B83A0B MOV AX,0B3A ;这里是ds的段地址
0B3C:000B 8ED8 MOV DS,AX
0B3C:000D FF360000 PUSH [0000]
0B3C:0011 FF360200 PUSH [0002]
0B3C:0015 8F060200 POP [0002]
0B3C:0019 8F060000 POP [0000]
0B3C:001D B8004C MOV AX,4C00
-t
AX=0B3B BX=0000 CX=0042 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B2A ES=0B2A SS=0B3A CS=0B3C IP=0003 NV UP EI PL NZ NA PO NC
0B3C:0003 8ED0 MOV SS,AX
-t
AX=0B3B BX=0000 CX=0042 DX=0000 SP=0010 BP=0000 SI=0000 DI=0000
DS=0B2A ES=0B2A SS=0B3B CS=0B3C IP=0008 NV UP EI PL NZ NA PO NC
0B3C:0008 B83A0B MOV AX,0B3A ;ss为0b3b,sp为0010指向顶部。
;0b3b:0到0b3b:f为空。指向0b3b:0010.
-t
AX=0B3A BX=0000 CX=0042 DX=0000 SP=0010 BP=0000 SI=0000 DI=0000
DS=0B2A ES=0B2A SS=0B3B CS=0B3C IP=000B NV UP EI PL NZ NA PO NC
0B3C:000B 8ED8 MOV DS,AX ;程序载入后,数据就在0B2A:0-0B2A:F中这
-t ;里是设置ds指向cpu分配的段
AX=0B3A BX=0000 CX=0042 DX=0000 SP=0010 BP=0000 SI=0000 DI=0000
DS=0B3A ES=0B2A SS=0B3B CS=0B3C IP=000D NV UP EI PL NZ NA PO NC
0B3C:000D FF360000 PUSH [0000] DS:0000=0123
-t
AX=0B3A BX=0000 CX=0042 DX=0000 SP=000E BP=0000 SI=0000 DI=0000
DS=0B3A ES=0B2A SS=0B3B CS=0B3C IP=0011 NV UP EI PL NZ NA PO NC
0B3C:0011 FF360200 PUSH [0002] DS:0002=0456
-d ss:0
0B3B:0000 00 00 00 00 3A 0B 00 00-11 00 3C 0B 47 05 23 01 ....:.....<.G.#.
-t ; ax ip cs (?) push(ds:0)
AX=0B3A BX=0000 CX=0042 DX=0000 SP=000C BP=0000 SI=0000 DI=0000
DS=0B3A ES=0B2A SS=0B3B CS=0B3C IP=0015 NV UP EI PL NZ NA PO NC
0B3C:0015 8F060200 POP [0002] DS:0002=0456
-d ss:0 f
0B3B:0000 00 00 3A 0B 00 00 15 00-3C 0B 47 05 56 04 23 01 ..:.....<.G.V.#.
-t
AX=0B3A BX=0000 CX=0042 DX=0000 SP=000E BP=0000 SI=0000 DI=0000
DS=0B3A ES=0B2A SS=0B3B CS=0B3C IP=0019 NV UP EI PL NZ NA PO NC
0B3C:0019 8F060000 POP [0000] DS:0000=0123
-t
AX=0B3A BX=0000 CX=0042 DX=0000 SP=0010 BP=0000 SI=0000 DI=0000
DS=0B3A ES=0B2A SS=0B3B CS=0B3C IP=001D NV UP EI PL NZ NA PO NC
0B3C:001D B8004C MOV AX,4C00
-d ss:0 f
0B3B:0000 00 00 3A 0B 3A 0B 3A 0B-00 00 1D 00 3C 0B 47 05 ..:.:.:.....<.G.
;pop后空间为空,这是中断的暂时存放.
-d ds:0 f
0B3A:0000 23 01 56 04 89 07 BC 0A-EF 0D ED 0F BA 0C 87 09 #.V.............
data的数据不变,
cs=0b3c, ss=0b3b, ds=0b3a
X-2, X-1