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