簡體   English   中英

Assembly Imul和Idiv

[英]assembly imul and idiv

您能否建議解決以下步驟:

mov ax, 0835 h
mov cv, 005d h
idiv cl

斧=?

正確答案:3716我的答案:0016(我將0835h轉換為1011的2101,將005dh轉換為93的十進制。然后除以2101/93 = 22.59,然后將22轉換為十六進制,得到16。這樣AX得到商0016h。

另外,從下面的代碼收到的ax值呢?

mov ax, 0084
mov bx, 009C
imul bl

正確答案:3070我的答案:141C(乘以二進制)

非常感謝您的幫助。

先感謝您。

馬丁

為了將一個單詞除以一個字節(單詞/字節),商以AL表示,余數以AH表示。 因此,在您的示例中, AX=3716H

對於兩個字節(byte * byte)的乘法,結果是一個字(16位)。 因此,在您的示例中,結果為AX=3070

請注意 ,對於帶符號的數字,用鉛筆和紙進行乘法(例如加法和移位)和除法的方法可能無法正常工作。 例如,用於符號乘法的正確方法是booth算法 我不得不說鉛筆和紙的方法應該修改帶符號的數字,訣竅是擴展符號位。 但是,這樣的方法容易出錯,這就是為什么首選專用算法的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM