请问如何进行有符号数的乘法?

oasisboy 2005-03-29 09:03:48
比如(AL)=FEH,(CL)=11H;
IMUL CL
(AX)=FFDEH是怎么算出来的啊?
...全文
760 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdsjkk 2005-03-29
  • 打赏
  • 举报
回复
(AL)=FEH=-2
(CL)=11H;
IMUL CL ;11h*(-2)=-22h=FFDEH(补码表示)
UniverseWisdom 2005-03-29
  • 打赏
  • 举报
回复
公式中有许多数学符号无法打出来。

1)Yi+1Yi = 00 或 11,部分积加0,左移1位
2)Yi+1Yi = 10,部分积加[X]补,左移1位
3)Yi+1Yi = 01,部分积加[-X]补,左移1位

只能给个实例:

x=-0.1101 y=0.1011

部分积(AH) 乘数(AL) 说明
----------------------------------------------------------------
00 0000 | 0 1 0 1 1 0 初始值,最后一位补0
+ 00 1101 | Y5Y4 = 01,+[-X]补
---------- |
00 1101 --
->00 0110 1|0 1 0 1 1 右移1位
+ 00 0000 | Y4Y3 = 11,+0
---------- |
00 0110 --
->00 0011 0 1|0 1 0 1 右移1位
+ 11 0011 | Y3Y2 = 10,+[X]补
---------- |
11 0110 --
->11 1011 0 0 1|0 1 0 右移1位
+ 00 1101 | Y2Y1 = 01,+[-X]补
---------- |
00 1000 --
->00 0100 0 0 0 1| 0 1 右移1位
+ 11 0011 | Y1Y0 = 10,+[X]补
---------- |
11 0111 0 0 0 1|

计算结果:[X*Y]补=1.01110001
X*Y=-0.10001111
建议你如果真的感兴趣可以去看<计算机组成与结构>
oasisboy 2005-03-29
  • 打赏
  • 举报
回复
那个结果是怎么出来的呢,机器算的吗?
UniverseWisdom 2005-03-29
  • 打赏
  • 举报
回复
这个公式的推理很长,写出来需要一些时间。
oasisboy 2005-03-29
  • 打赏
  • 举报
回复
说一下布斯公式怎么计算的吧,我想知道理论的算法!
UniverseWisdom 2005-03-29
  • 打赏
  • 举报
回复
理论上是使用布斯公式或其变形。
电路怎么设计我就不知道了。

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧