Ъγ:_小ツ雨oο 发表于 2014-4-29 15:32:22

监测点 3,,1

我用 DEBUG 按要求把0:0 1f的数都给改好了, 就用 a命令在当前的虚拟DOS下开始写入,,,写完了之后我用T命令单步执行,我想知道第一个ax=2662H是怎么算出来的啊啊,,我知道 是 将 DS:0000 处的 数据写入ax,可是DS是 1 难道是1*16+偏移? 可是这样子我直接d 0010 0答案不对的啊,为什么这样子, 求解释

为之疯狂 发表于 2014-4-29 15:32:23

mov ax,1H
mov ds,ax
mov ax,

从这3句话可以看出,ds=1H,ax = ds:0 = ds*16+0 = 1H*16+0 =10H 这是最后算出来的物理地址,你要查看的话,要么就是 d 1:0   或者 d 0:10
记住这个1是16位进制,16位进制*16 相当于左移1位 (10)

传说。 发表于 2014-4-29 20:29:23

答案见楼上:big

微笑的好吧 发表于 2014-4-30 08:12:05

路过。。{:1_1:}{:1_1:}

青玄 发表于 2014-4-30 08:49:43

恩恩....,楼上的回答的很详细,我想你的问题应该解决了吧!:lol:

风之残月 发表于 2014-4-30 09:15:51

开始有两句 mov ax, 1   mov ds, ax

风之残月 发表于 2014-4-30 09:19:48

抱歉,不知按了什么键直接上传了
开始有两句 mov ax, 1       mov ds, ax    执行后ds值为 1
mov ax, 也就是    mov ax, ds:   即为    1:0    最后物理地址就是 1 * 16 + 0 = 16就是0000:00010,因为是ax,所以取一个字的内容,即 0x2662

Ъγ:_小ツ雨oο 发表于 2014-4-30 12:10:09

风之残月 发表于 2014-4-30 09:19 static/image/common/back.gif
抱歉,不知按了什么键直接上传了
开始有两句 mov ax, 1       mov ds, ax    执行后ds值为 1
mov ax,

谢谢,我懂了,按先来后到给的最佳,下次来早哦,我还在学习中,一定会遇到好多问题的,非常期待您的下次解答!!{:5_106:}{:5_109:}{:5_110:}{:5_102:}

www5956 发表于 2014-5-1 19:12:03

疯狂你帮我也解决了这个问题了哦!

www5956 发表于 2014-5-1 22:18:14


0DB4:0111 mov bx,
请问下着段的结果为什么是D6E6呢
而不是e626呢
是62 是26 是E6
物理地址=段地址*16+偏移地址啊
请问是什么原因呢一直都在误解中新手伤不起呀
圣旨在哪不通过检测点无法往下学呀!{:7_149:}{:7_155:}{:7_163:}{:5_100:}
页: [1]
查看完整版本: 监测点 3,,1