orino 发表于 2016-10-13 19:11:59

关于目的操作数和源操作数长度匹配问题

为什么可以用MOV AX,10H但是不能用MOV AX, BL?

Kotori 发表于 2016-10-13 20:17:08

MOV AX,10H编译器编译时会把10H扩充到16位(用0补充),这条指令带有这个立即数,才能扩充使两者匹配。
而MOV AX, BL(两个寄存器传送数据)编译为一个机器指令时,不带有立即数,这时两个寄存器长度不匹配就不能实现操作。
具体的你可以自己写文件,包括MOV MOV AX,10H和MOV AX,BX这样两种格式对比下编译后的代码就知道了。

orino 发表于 2016-10-13 21:12:09

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

好的,多谢
页: [1]
查看完整版本: 关于目的操作数和源操作数长度匹配问题