是否可以执行以下操作:MOV AX,EBX
如果是的话会发生什么情况?
还会发生什么:MOV EBX,AX?
(使用NASM,8086架构)
答案 0 :(得分:1)
使用mov ax,bx将bx的低16位移动到ax。
使用movsx ebx,ax将ax移动到符号扩展名为
的ebx使用movzx ebx,ax将ax移动到ebx,将ebx的高16位归零。
答案 1 :(得分:1)
假设英特尔语法,
MOV AX, EBX
如果允许,将EBX的内容复制到AX。
试试吧。我记得它不受支持。但您可以复制任何16位组,例如
MOV AX, BX
然而,相反,扩展位模式,如假设
MOV EBX, AX
如何做到这一点取决于你想要的。
如果AX代表无符号整数,只需清除EBX并复制到下半部分,例如
XOR EBX, EBX
MOV BX, AX
但是,如果AX表示有符号整数(二进制补码),则需要在整个16位高位中复制符号位,这称为符号扩展。
谷歌搜索“x86标志扩展”给了我
MOVS EBX, AX
但我没有尝试过(也就是说,我还没有尝试过现在,但也许是20年前,我不知道)。
简而言之,查阅文档并试用。
答案 2 :(得分:0)
MOV AX,EBX ......如果这样可以编译,你可能会在AX中获得BX。
MOV EBX,AX将在BX中获得AX并且在它之前为零...
我现在手边没有汇编程序,但请试着看看会发生什么......