鱼C论坛

 找回密码
 立即注册
查看: 2082|回复: 10

求解释

[复制链接]
发表于 2013-2-8 22:13:03 | 显示全部楼层 |阅读模式
2鱼币
  
(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  
  怎么解释啊

最佳答案

查看完整内容

0000表示的是偏移 []表示的是取地址里面存放的值 默认短地址为DS,也就是把ds:0这个地址中存放的值放给AX 例如我 mov bx,5200H mov ds:0,5200h mov ax,[0000] ax=5200h 用DEBUG做实验好了 我让ds:0这个地址中的值为5200h -d查看可以看到已经成功赋值了 也就是说[0000]的意思就是默认DS为段地址,偏移为0,也就是ds:0这个地址中的 一个字大小的值 5200H放给AX
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-8 22:13:04 | 显示全部楼层

0000表示的是偏移 []表示的是取地址里面存放的值
默认短地址为DS,也就是把ds:0这个地址中存放的值放给AX
例如我
mov bx,5200H
mov ds:0,5200h
mov ax,[0000]
ax=5200h

用DEBUG做实验好了
1.jpg
我让ds:0这个地址中的值为5200h
2.jpg
-d查看可以看到已经成功赋值了

3.jpg
也就是说[0000]的意思就是默认DS为段地址,偏移为0,也就是ds:0这个地址中的 一个字大小的值 5200H放给AX

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-8 22:55:17 | 显示全部楼层
mov ax,[0000] //因为ds=1 所以此时指向1*16+0=10h处  mov进行字传递,高地址保存高位,低地址保存低位
  所以ax=2662h

后面基本一样!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-2-8 23:04:26 | 显示全部楼层
你|若|问|我 发表于 2013-2-8 22:55
mov ax,[0000] //因为ds=1 所以此时指向1*16+0=10h处  mov进行字传递,高地址保存高位,低地址保存低位
  所 ...

还是没懂 那个mov ax,[0000] 中 【0000】到底是什么意思啊  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-9 00:22:17 | 显示全部楼层
数据读取的偏移地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-10 00:42:21 | 显示全部楼层
谁抢了我的小红 发表于 2013-2-8 23:04
还是没懂 那个mov ax,[0000] 中 【0000】到底是什么意思啊

大哥,书本里说的很详细了。你有认认真真的看书了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-10 00:43:01 | 显示全部楼层
楼上的大哥已经说得很详细了,再不明白,我就无语了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-10 01:20:23 | 显示全部楼层
原来如此啊  我学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-12 10:30:05 | 显示全部楼层
楼上大大们,你们貌似解释错了 。莫非没发现他在debug中查看的地址是0000:0000么。然后给ds赋的地址是0001么?也就是说你在执行这个程序的时候,实际上是把0001:0000~0001:000c里面的内容给“取”了出来。而不是你给出的0000:0000内的内容!OK? 至于[0000]的意思,就是把指针指向ds:0000中的内容。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-12 10:32:04 | 显示全部楼层
mov ax,1  mov ds,ax这两句 ,你已经把地址成功的指向了0001:0000的位置了,而你还在参照0000:0000位置的数据。肯定不正确的啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-2-23 23:46:59 | 显示全部楼层
ai979520253 发表于 2013-2-10 00:42
大哥,书本里说的很详细了。你有认认真真的看书了吗?

  我没有书 一直看的视频
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 00:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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