面条 发表于 2012-8-28 10:47:52

检测点3.1 我好像理解错了哪位大哥能帮下忙!!刚才问题加的不清楚现在改正了

本帖最后由 面条 于 2012-9-2 19:48 编辑

1)在DEBUG中,用 "D 0:0 lf" 查看内存,结果如下:0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 600000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值mov ax,1 mov ds,ax mov ax,ax= 2662Hmov bx,bx= E626Hmov ax,bx      ax= E626Hmov ax,ax= 2662Hmov bx,bx= D6E6Hadd ax,bx      ax= FD48Hadd ax,ax= 2C14Hmov ax,0       ax=   0    mov al,ax= 00e6Hmov bx,0       bx=   0    mov bl,bx= 0026Hadd al,bl      ax= 000CH 刚刚学习汇编,,卡在这了,,想像大哥们请教些问题,,,我的理解是这样的
刚才问题没写清楚,,主要是mov ax,1mov ds,axmov ax,段地址是1,偏移地址是0,,,在DEBUG中,用 "D 0:0 lf" 查看内存,结果如下: 0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 600000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88只有这两个呀,,要是段地址和偏移地址相加的话,那不是0010:0000
怎么会是0000:0010呢,,时在是弄不明白呀!!上面的是答案,我按着他说的内存地址做的话,也都会,,就是自己找的和他说的对不住!

面条 发表于 2012-8-28 11:15:35

怎么没有人理我呢!!!!

面条 发表于 2012-8-28 11:33:05

不是这么冷淡我吧,,一个人也不回答,,知不知道回答下让我的心不要这么凉呗!!

小歪xxp 发表于 2012-8-28 11:42:05

我学到第四章了,我的理解是,把数据段地址为1,偏移地址为0的数据,送给AX.

GeV20 发表于 2012-8-28 11:52:38

理解没错了,只要注意一下寄存器的位数,及进位问题就好。
al的位不会进到ah去。

BLOOD丶续梦 发表于 2012-8-28 12:20:41

没 有 问题啊,不知道你问的什么。。。。   0000:00106226到 ax低位26 高位 62   所以ax=2662
你想问什么 ?

面条 发表于 2012-8-28 12:45:26

BLOOD丶续梦 发表于 2012-8-28 12:20 static/image/common/back.gif
没 有 问题啊,不知道你问的什么。。。。   0000:00106226到 ax低位26 高位 62   所以ax=2662
你 ...

谢谢,,刚才没把问题加清楚,,现在能帮看下不!!

面条 发表于 2012-8-28 12:51:07

GeV20 发表于 2012-8-28 11:52 static/image/common/back.gif
理解没错了,只要注意一下寄存器的位数,及进位问题就好。
al的位不会进到ah去。

在不哥们,,能不能再给解释下!!

GeV20 发表于 2012-8-28 14:48:01

本帖最后由 GeV20 于 2012-8-28 15:08 编辑

DS=1时,用SA:EA方式表示应该是0001:0000,
段地址和偏移地址相加应该是0001:0000=0001h*10h+0000h=00010h
是不是跟0000:0010都指向同一位置了。不知道解释的清楚木。
请参考2.6和2.7的内容,第20页

面条 发表于 2012-8-28 16:42:22

GeV20 发表于 2012-8-28 14:48 static/image/common/back.gif
DS=1时,用SA:EA方式表示应该是0001:0000,
段地址和偏移地址相加应该是0001:0000=0001h*10h+0000h= ...

谢谢啊,我去看看书去!!!

骑着蟑螂闯红灯 发表于 2012-8-28 23:35:56

用物理地址看内存中数据,不同的段地址和偏移地址,它们的物理地址可以一样,段地址0001H,偏移地址0000H,物理地址为00010H      ,    段地址0000H,偏移地址0010H,物理地址同样是00010H,总之一句话:物理地址可以用不同的段地址和偏移地址去表达{:5_102:}

幻想 发表于 2012-8-30 21:43:23

其实0010:0000和0000:0010表示的地址是一样的

dAb 发表于 2012-8-30 23:35:59

{:1_1:}问题表达不够清楚,不知道你在问什么

魑魅魍魉 发表于 2012-8-30 23:40:38

正好也遇到这个问题,谢谢各位啦。感觉自己好笨的!,看了后面忘了前面的!

忏悔 发表于 2012-8-31 09:58:29

段地址左移一位加上偏移地址得到物理地址,也就是说段地址0000,偏移地址0010 得到的是0010
那么段地址0001,偏移地址0000,段地址左移为0010加上偏移地址是0,所以得到的物理地址依然是0010

小岸 发表于 2012-8-31 20:10:09

面条同志,你好。我昨天也看过这个问题,分析了一下:
                  因为:SA*16+EA=物理地址
                  所以:0001H*16H+0000=0010H
                  这个如果有问题建议你重新看一下物理地址的合成和十六进制概念吧。
然后:
          我相信你是被0000:0010
                                          :这个东西给迷惑了
                                       它的意思只是方便区分的意思

小岸 发表于 2012-8-31 20:11:53

后面的概念一定要区分清楚 不要与CP:IP以及其他段寄存器给混淆

c_l_龙龙 发表于 2012-12-11 16:47:18

mov ax,实际上就是mov ax,ds:转成逻辑地址就是1:他所对应的物理地址就是1*10H+0=10H物理地址10H又可以写成0:实际上1:=0:都等于物理地址10H

菜鸟一个a 发表于 2013-12-24 22:17:27

0001:0000 和0000:0010都换算为物理地址是一样的

hexiaofengye 发表于 2015-6-9 14:27:52

多谢!我听懂了
页: [1]
查看完整版本: 检测点3.1 我好像理解错了哪位大哥能帮下忙!!刚才问题加的不清楚现在改正了