簡體   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