D:\masm>debug asm3.exe
-t
AX=2000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14ED ES=14ED SS=14FD CS=14FD IP=0003 NV UP EI PL NZ NA PO NC
14FD:0003 8ED0 MOV SS,AX
-t
AX=2000 BX=0000 CX=0016 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=14ED ES=14ED SS=2000 CS=14FD IP=0008 NV UP EI PL NZ NA PO NC
14FD:0008 83C404 ADD SP,+04
-t
AX=2000 BX=0000 CX=0016 DX=0000 SP=0004 BP=0000 SI=0000 DI=0000
DS=14ED ES=14ED SS=2000 CS=14FD IP=000B NV UP EI PL NZ NA PO NC
14FD:000B 58 POP AX
-t
AX=20CD BX=0000 CX=0016 DX=0000 SP=0002 BP=0000 SI=002D DI=0000
DS=14ED ES=14ED SS=2000 CS=0000 IP=0014 NV UP DI PL NZ NA PE NC
0000:0014 CC INT 3
-
以上是程序执行的情况,但当时执行了pop ax后,cs就变成0000了?
而通过查询当前栈顶的内容为:8B08(如下),那么AX中的数据就应该是8B08,为什么会变成0000?
-d ss:0004
2000:0000 08 8B 4E 0A-8A 46 0C B4 42 CD 21 72
2000:0010 05 80 A7 24 0F FD E9 37-14 55 8B EC 56 57 B8 E0
2000:0020 26 8E D8 1E 07 8B 56 06-BE 8C 10 AD 3B C2 74 10
2000:0030 40 96 74 0C 97 33 C0 B9-FF FF F2 AE 8B F7 EB EB
2000:0040 96 5F 5E 8B E5 5D CA 02-00 55 8B EC 57 FF 76 06
2000:0050 9A 99 0C 38 1F 0B C0 74-14 92 8B FA 33 C0 B9 FF
2000:0060 FF F2 AE F7 D1 49 BB 02-00 B4 40 CD 21 5F 8B E5
2000:0070 5D CA 02 00 55 8B EC 83-EC 04 32 FF 88 7E FE 8B
2000:0080 46 08 8B C8 |