我的答案
(1)data段中的数据没变,和以前一样
(2)(在我的电脑上是)cs=0b6b ss=0b6a ds=0b69
(3)有(2)中的数值关系可以看出来它们之间的关系
code段为X,则 date段为x-2,stack段为x-1
不知道答案对不对。
另外我在跟踪程序的时候发现,当执行完指令push ds:[0]后,也就是将数据压入栈,数据位于栈底,但是不知道什么原因数据上面的有些字节的地方改变了数据,在刚创建栈的时候都是0.(图在下面)
AX=0B69 BX=0000 CX=0042 DX=0000 SP=0010 BP=0000 SI=0000 DI=0000
DS=0B69 ES=0B59 SS=0B6A CS=0B6B IP=000D NV UP EI PL NZ NA PO NC
0B6B:000D FF360000 PUSH [0000] DS:0000=0123
-t
AX=0B69 BX=0000 CX=0042 DX=0000 SP=000E BP=0000 SI=0000 DI=0000
DS=0B69 ES=0B59 SS=0B6A CS=0B6B IP=0011 NV UP EI PL NZ NA PO NC
0B6B:0011 FF360200 PUSH [0002] DS:0002=0456
-d 0b6a:0000
0B6A:0000 00 00 00 00 69 0B 00 00-11 00 6B 0B 6E 05 23 01 ....i.....k.n.#.
0B6A:0010 B8 6A 0B 8E D0 BC 10 00-B8 69 0B 8E D8 FF 36 00 .j.......i....6.
0B6A:0020 00 FF 36 02 00 8F 06 02-00 8F 06 00 00 B8 00 4C ..6............L
0B6A:0030 CD 21 07 00 74 0A FF 36-56 07 E8 21 FC 83 C4 02 .!..t..6V..!....
0B6A:0040 FF 06 56 07 5E 8B E5 5D-C3 90 55 8B EC 81 EC 90 ..V.^..]..U.....
0B6A:0050 00 56 C4 5E 06 26 8B 47-08 89 46 F8 26 83 7F 06 .V.^.&.G..F.&...
0B6A:0060 00 74 7F 26 8B 5F 06 D1-E3 8B 36 96 16 8B 00 89 .t.&._....6.....
0B6A:0070 86 72 FF 8B D8 D1 E3 8B-36 9A 16 8B 00 89 46 F6 .r......6.....F.
----------------------------------------------------------------
在0b6a:0000 ,2301就是压入的[0]数据,可是在2301前面的那些数据也改变了,空栈的时候它们都是零啊,实在是不明白,麻烦大侠们解释下!谢谢! |