[英]How to use IMUL and MUL instruction in emu8086?
如何在emu8086中使用IMUL
和MUL
? .. movzx
在movzx
中使用movzx
像例如在emu8086中不允许movzx,此替代方法将允许我使用指令,emu8086是否具有类似此替代方法的内容,所以我使用指令IMUL / MUL?
1 movzx bx,centerBot ;not allowed in emu8086
2
3 mov bh,00 ;alternative of line 1
4 mov bl,centerBot ;to move centerBot to bx
;in emu8086
emu8086中的IMUL
/ MUL
是否有类似的内容,所以我可以使用这些说明吗?
正如通过查看x86指令集的指南( 此处或此处 )所imul
自8086年以来就已经支持mul
和imul
指令。因此,如果Emu8086实际上是模拟Intel 8086,则它应该同时模拟这两个指令也一样 使用它们应该没有问题。
MUL
用于无符号乘法,并且在8086上有两种形式:16位版本和8位版本:
MUL r16|m16
⇔ dx
: ax
= ax
* r16|m16
MUL r8|m8
⇔ ax
= al
* r8|m8
IMUL
具有两个相同的版本,但是将值视为已签名。
关于movzx
解决方法/仿真,最好使用:
xor bx, bx ; clear BX (upper and lower bits)
mov bl, centerBot ; copy centerBot to the lower bits of BX
或者,您可以仅将centerBot
安排为一个字大小的变量/内存,这将使直接移动成为可能:
mov bx, centerBot
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.