首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加法右移算法-它是如何工作的?

加法右移算法-它是如何工作的?
EN

Stack Overflow用户
提问于 2015-05-07 05:43:05
回答 1查看 1.1K关注 0票数 0

因此,我必须构建一个基本的4位乘法器,只使用加法和右移。我基本上知道Shift Add算法是如何工作的,但我不知道如何使它与右移而不是左移一起工作。从技术角度来看,假设我们有一个累加器,两个4位移位右寄存器和一个ALU,基本上是这样的,考虑到乘法器在ShiftReg2中的累加器和乘法器中,所以我们可以使用累加器(位7-4)和ShiftReg1 (位3-0)作为我们8位产品的输出。到目前为止Acc=abcd ShiftReg1=nothing的重要性和ShiftReg2=wxyz

知道如何开始4步算法的运行,考虑到你必须始终向右移动,并且只能将你的乘法器加到累加器中?

EN

回答 1

Stack Overflow用户

发布于 2015-05-07 13:41:40

假设您有一个指令(称为JPE),如果累加器是偶数(只是测试正确的大多数位是否为null),则可以使用这个沉重/丑陋的解决方案。

指示:

  • JPE <address>:如果累加器是偶数,跳到这个地址。
  • ADD <r1>, <r2>:将<r1>的值添加到<r2>并将结果存储到<r2>中。
  • SHR:将累加器向右移动1位。

初始化:

代码语言:javascript
运行
复制
Acc : first number.
Sr1 : 0, but it will hold the result at the end of the algorithm's execution.
Sr2 : second number to multiply with the first.

Awfull算法:

代码语言:javascript
运行
复制
0001   JPE 0003
0002   ADD Sr2, Sr1
0003   SHR
0004   JPE 0007
0005   ADD Sr2, Sr1
0006   ADD Sr2, Sr1
0007   SHR
0008   JPE 0013
0009   ADD Sr2, Sr1
0010   ADD Sr2, Sr1
0011   ADD Sr2, Sr1
0012   ADD Sr2, Sr1
0013   SHR
0014   JPE 0023
0015   ADD Sr2, Sr1
0016   ADD Sr2, Sr1
0017   ADD Sr2, Sr1
0018   ADD Sr2, Sr1
0019   ADD Sr2, Sr1
0020   ADD Sr2, Sr1
0021   ADD Sr2, Sr1
0022   ADD Sr2, Sr1
0023   SHR
0024   <STOP>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30092807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档