鱼C论坛

 找回密码
 立即注册
查看: 3134|回复: 19

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

[复制链接]
发表于 2012-8-28 10:47:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 面条 于 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 60  
0000: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,[0000]  ax= 2662H  
mov bx,[0001]  bx= E626H  
mov ax,bx      ax= E626H  
mov ax,[0000]  ax= 2662H  
mov bx,[0002]  bx= D6E6H  
add ax,bx      ax= FD48H  
add ax,[0004]  ax= 2C14H  
mov ax,0       ax=   0   
mov al,[0002]  ax= 00e6H  
mov bx,0       bx=   0   
mov bl,[000c]  bx= 0026H  
add al,bl      ax= 000CH  
刚刚学习汇编,,卡在这了,,想像大哥们请教些问题,,,
我的理解是这样的

刚才问题没写清楚,,
主要是
mov ax,1
mov ds,ax
mov ax,[0000]
段地址是1,偏移地址是0,,,
在DEBUG中,用 "D 0:0 lf" 查看内存,结果如下:
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60  
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88  
只有这两个呀,,要是段地址和偏移地址相加的话,那不是0010:0000
怎么会是0000:0010呢,,时在是弄不明白呀!!
上面的是答案,我按着他说的内存地址做的话,也都会,,就是自己找的和他说的对不住!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-28 11:15:35 | 显示全部楼层
怎么没有人理我呢!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-28 11:33:05 | 显示全部楼层
不是这么冷淡我吧,,一个人也不回答,,知不知道回答下让我的心不要这么凉呗!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-28 11:42:05 | 显示全部楼层
我学到第四章了,我的理解是,把数据段地址为1,偏移地址为0的数据,送给AX.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-28 11:52:38 | 显示全部楼层
理解没错了,只要注意一下寄存器的位数,及进位问题就好。
al的位不会进到ah去。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-28 12:20:41 | 显示全部楼层
没 有 问题啊,不知道你问的什么。。。。   0000:0010  62  26  到 ax  低位26 高位 62   所以ax=2662
你想问什么 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-28 12:45:26 | 显示全部楼层

谢谢,,刚才没把问题加清楚,,现在能帮看下不!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-28 12:51:07 | 显示全部楼层
GeV20 发表于 2012-8-28 11:52
理解没错了,只要注意一下寄存器的位数,及进位问题就好。
al的位不会进到ah去。

在不哥们,,能不能再给解释下!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-28 14:48:01 | 显示全部楼层
本帖最后由 GeV20 于 2012-8-28 15:08 编辑

DS=1时,[0000]用SA:EA方式表示应该是0001:0000,
段地址和偏移地址相加应该是0001:0000=0001h*10h+0000h=00010h
是不是跟0000:0010都指向同一位置了。不知道解释的清楚木。
请参考2.6和2.7的内容,第20页
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-28 16:42:22 | 显示全部楼层
GeV20 发表于 2012-8-28 14:48
DS=1时,[0000]用SA:EA方式表示应该是0001:0000,
段地址和偏移地址相加应该是0001:0000=0001h*10h+0000h= ...

谢谢啊,我去看看书去!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-28 23:35:56 | 显示全部楼层
用物理地址看内存中数据,不同的段地址和偏移地址,它们的物理地址可以一样,段地址0001H,偏移地址0000H,物理地址为00010H      ,    段地址0000H,偏移地址0010H,物理地址同样是00010H,总之一句话:物理地址可以用不同的段地址和偏移地址去表达
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-30 21:43:23 | 显示全部楼层
其实0010:0000和0000:0010表示的地址是一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-30 23:35:59 | 显示全部楼层
{:1_1:}问题表达不够清楚,不知道你在问什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-30 23:40:38 | 显示全部楼层

回帖奖励 +1 鱼币

正好也遇到这个问题,谢谢各位啦。感觉自己好笨的!,看了后面忘了前面的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-31 09:58:29 | 显示全部楼层
段地址左移一位加上偏移地址得到物理地址,也就是说段地址0000,偏移地址0010 得到的是0010
那么段地址0001,偏移地址0000,段地址左移为0010加上偏移地址是0,所以得到的物理地址依然是0010
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-31 20:10:09 | 显示全部楼层
面条同志,你好。我昨天也看过这个问题,分析了一下:
                  因为:SA*16+EA=物理地址
                  所以:0001H*16H+0000=0010H
                  这个如果有问题建议你重新看一下物理地址的合成和十六进制概念吧。
然后:
          我相信你是被0000:0010
                                          :这个东西给迷惑了
                                         它的意思只是方便区分的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-31 20:11:53 | 显示全部楼层
后面的概念一定要区分清楚 不要与CP:IP以及其他段寄存器给混淆
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-11 16:47:18 | 显示全部楼层
mov ax,[0000]  实际上就是mov ax,ds:[0000]转成逻辑地址就是1:[0000]他所对应的物理地址就是1*10H+0=10H物理地址10H又可以写成0:[0010]实际上1:[0000]=0:[0010]都等于物理地址10H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-12-24 22:17:27 | 显示全部楼层
0001:0000 和0000:0010都换算为物理地址是一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-6-9 14:27:52 | 显示全部楼层
多谢!我听懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 14:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表