鱼C论坛

 找回密码
 立即注册
查看: 2954|回复: 5

为什么不可以直接用这样的形势呢?

[复制链接]
发表于 2011-10-29 21:45:00 | 显示全部楼层 |阅读模式

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

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

x
为什么不能直接用 mov [bx],11011111b   这样  
而非要mov al,[bx]  
         and al,11011111b
         mov [bx],al
请问一定要这样啊 请解释一下,我用  mov [bx],11011111b  试过,不行
这是为什么啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-29 22:47:04 | 显示全部楼层
往内存写数据 要通过一个寄存器间接赋值,al就是写一个字节 ax等就是一个字
因为你mov [bx],11011111b 后面可以看成一个字节的十六进制数 DFh 也可以看成一个字的00dfh
而[bx]是指向DS:[bx]的内存地址,是写入一个字节 还是一个字呢?

可以mov byte ptr [bx],11011111b 这么写就不报错了(byte ptr 操作数为字节   word ptr 操作数为字  dword ptr 操作数为双字     这个不知道你看到没~~)

还有你这问题还有个逻辑错误
mov [bx],al那里是把and al,11011111b的位运算的结果放入 偏移地址bx所指向的内存

你直接mov [bx],11011111b是要干嘛?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-29 22:48:11 | 显示全部楼层
:loveliness:   我也才看到第10章学习中而已,有错误希望大牛指出。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-29 22:54:50 | 显示全部楼层
mov al,[bx]  
         and al,11011111b
         mov [bx],al
的意思是把bx地址的字母转换成大写。

mov [bx],11011111b
的意思是将11011111b赋值给[bx]

看你要实现什么目的了。
这两种表达,意思不一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-29 22:59:22 | 显示全部楼层
我才看到第九章...
看来前面的知识要在去复习下...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-31 20:39:26 | 显示全部楼层
看来LZ的问题是想说为什么不能and [bx],11011111b  对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 08:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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