[英]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.