繁体   English   中英

如何在emu8086中使用IMUL和MUL指令?

[英]How to use IMUL and MUL instruction in emu8086?

如何在emu8086中使用IMULMUL .. movzxmovzx中使用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年以来就已经支持mulimul指令。因此,如果Emu8086实际上是模拟Intel 8086,则它应该同时模拟这两个指令也一样 使用它们应该没有问题。

MUL用于无符号乘法,并且在8086上有两种形式:16位版本和8位版本:

  • MUL r16|m16dxax = ax * r16|m16

  • MUL r8|m8ax = 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM