. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->包含多个段的程序
主题 : :  关于实验5的(1)  [待解决] 回复[ 7次 ]   点击[ 606次 ]  
mengyikaisi
[帖 主] [ 发表时间:2009-03-15 21:35 ] 
荣誉值:0
信誉值:0
注册日期:2008-08-21 22:38
我的答案
(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前面的那些数据也改变了,空栈的时候它们都是零啊,实在是不明白,麻烦大侠们解释下!谢谢!
iamalian
[第3楼] [ 回复时间:2009-04-01 15:57 ] 
荣誉值:0
信誉值:0
注册日期:2009-03-16 22:48
T跟踪的话,某些寄存器的状态值是要入栈的
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved