繁体   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