zoukankan      html  css  js  c++  java
  • 计组实验后记

    利用Mars软件MIPS指令编写booth算法


    从昨天晚上开始一直思考这个问题,今天上午写完了初始程序,下午调了半下午bug。

    问题:


    1.思路正确,显示结果错误
    2.结果有的正确有的不正确
    

    解答


    1.上午有一个问题:如果将两个32位的数据按booth算法相乘的时候,需要用到移位。而两个32位数据分别存放于不同的寄存器中,所以不能直接进行移位操作。好友提示:先将表示高位的32寄存器“$t1”中的最后一位取出存于寄存器“$t0”,再将其左移31位(存入的是32为寄存器),然后将其同(已经右移的)表示低位的寄存器“$t1”进行或运算(OR  $t1,$t0),以达到顺畅右移的效果。然后我就照做了。所以就出错了。一步一步调试之后分析到,进行“$t1”右移操作的时候,应该用逻辑移位,而不是算术移位。
    2.对于$2的移位应该用算术移位。
    

    附:Booth乘法规则参考下图


    booth

    附:Booth乘法相关网站


  • 相关阅读:
    java自学
    java自学
    java自学
    java自学
    java自学
    java自学
    java自学
    自学Java0730
    自学Java0729
    自学Java0728
  • 原文地址:https://www.cnblogs.com/pualus/p/5266601.html
Copyright © 2011-2022 走看看