鱼C论坛

 找回密码
 立即注册
查看: 3764|回复: 2

[已解决]关于目的操作数和源操作数长度匹配问题

[复制链接]
发表于 2016-10-13 19:11:59 | 显示全部楼层 |阅读模式

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

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

x
为什么可以用MOV AX,10H但是不能用MOV AX, BL?
最佳答案
2016-10-13 20:17:08
MOV AX,10H编译器编译时会把10H扩充到16位(用0补充),这条指令带有这个立即数,才能扩充使两者匹配。
而MOV AX, BL(两个寄存器传送数据)编译为一个机器指令时,不带有立即数,这时两个寄存器长度不匹配就不能实现操作。
具体的你可以自己写文件,包括MOV MOV AX,10H和MOV AX,BX这样两种格式对比下编译后的代码就知道了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-13 20:17:08 | 显示全部楼层    本楼为最佳答案   
MOV AX,10H编译器编译时会把10H扩充到16位(用0补充),这条指令带有这个立即数,才能扩充使两者匹配。
而MOV AX, BL(两个寄存器传送数据)编译为一个机器指令时,不带有立即数,这时两个寄存器长度不匹配就不能实现操作。
具体的你可以自己写文件,包括MOV MOV AX,10H和MOV AX,BX这样两种格式对比下编译后的代码就知道了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-10-13 21:12:09 | 显示全部楼层
Kotori 发表于 2016-10-13 20:17
MOV AX,10H编译器编译时会把10H扩充到16位(用0补充),这条指令带有这个立即数,才能扩充使两者匹配。
而 ...

好的,多谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 00:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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