鱼C论坛

 找回密码
 立即注册
查看: 3316|回复: 4

实验6的问题,无法编译,提示错误。。。

[复制链接]
发表于 2011-12-21 00:36:19 | 显示全部楼层
这貌似是指令单位的问题,
mov 寄存器, [xxxx]
这样子的指令,都是以Word为单位(2个byte,写成16进制就是长0x1234这样)
如果要以一个byte作单位的话,加上byte ptr表示你只想移动一个字节.

mov al,byte ptr [bx+3+si]

mov byte ptr [bx+3+si],al

应该就可以了.
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-21 01:26:13 | 显示全部楼层
难道书这里的也是错误的?

这我不敢确定,可能是编译器版本?
照理说mov al, [bx+3+si]直接解读来看没有人会说是要移动一个word,
可是编译器通常都会报错要求要指明移动单位.
(呃,瞎猜的,当作参考吧~)


byte ptr是指byte pointer,字节指针.表示指向的地方是一个字节.
後面还会遇到像是word ptr,dword ptr之类的前缀,道理都一样的
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-10-30 06:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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