鱼C论坛

 找回密码
 立即注册
查看: 6231|回复: 11

mov bx, [0]到底表示什么

[复制链接]
发表于 2011-11-13 09:51:55 | 显示全部楼层 |阅读模式

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

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

x
书上前面说过,如果【】中是个数字的话编译时会被处理成立即数,所以要想用它来表示内存地址中的数要显式地给出段寄存器,如ds:[  ]。可是后面又说mov bx, [0]表示直接寻址,按照前面说的,不应该是立即数寻址吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
发表于 2011-11-13 09:57:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-13 10:01:56 | 显示全部楼层
0表示偏移地址,而段地址隐藏在ds中~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-14 15:16:36 | 显示全部楼层
我不明白- -
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-14 15:41:07 | 显示全部楼层
MOV BX , [0]

[0] 指:DS段地址中旳偏移地址旳数。 放入BX中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-19 15:41:25 | 显示全部楼层
好象今天听到了,mov bx,[0]是特殊地,在debug是直接寻址.而mov bx,[1]就是立即数寻址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-19 18:23:11 | 显示全部楼层

我也听到小甲鱼这么讲过,可是编了个实验性的程序发现没什么特殊的,编译的时候还是处理成立即数0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-19 22:43:04 | 显示全部楼层
我只听说 MOV BX,[0],表示默认DS段地址的第0和第1位的数放在BX中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-20 02:09:40 | 显示全部楼层
-D DS:0 的字数据放入BX寄存器
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-20 10:22:46 | 显示全部楼层
本帖最后由 licker 于 2011-11-20 10:29 编辑

比如在内存中:

0A010B 0F14A5C6ABCCD01A11BCDDCEF1
00010203040506070809ABCDEF
比如段地址是:DS
上面红色的是单元编号,蓝色的是数据。
mov bx,[0]
意思是说:将DS:[0] 0号单元的数据放入BX寄存器中。因为是16位寄存器,所以放入BX的数据就是:010A
这样应该容易理解了吧。。

补充说明一下:mov bx,[0] <------这个表示方式,在这个指令中段地址一定是:DS,[0]里面的0为偏移地址;方式为:立即寻址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-22 15:51:03 | 显示全部楼层
cfer 发表于 2011-11-19 18:23
我也听到小甲鱼这么讲过,可是编了个实验性的程序发现没什么特殊的,编译的时候还是处理成立即数0

那是因为ds段中0的位置指的就是0。。。若是其他数,就不会显示0了。。。可用debug  d看一下内存单元中存放的是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-22 22:39:19 | 显示全部楼层
逗留者me 发表于 2011-11-22 15:51
那是因为ds段中0的位置指的就是0。。。若是其他数,就不会显示0了。。。可用debug  d看一下内存单元中存放 ...

其实在debug中用u命令看反汇编指令就行了,发现还是mov ax, [0]汇编成机器码再反汇编出来确实是mov ax, 0。我也试验过了,把ds:[0]位置放别的数,还是把0给了ax。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-8 19:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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