MIPS32指令集中减法操作,新人第一次发帖,求助求助求助!!!!

定仙er 2021-03-23 11:15:43
如图: 对于操作类型为SUB和SUBU,我一直搞不懂。 举个例子: 如果reg1_i(寄存器1)的值是10,对应的二进制代码为0000 1010 如果reg2_i(寄存器2)的值是6,对应的二进制代码为 0000 0110 此时做sub或subu操作 将reg2_i(寄存器2)的值各位取反再+1 为 1111 1010 此时再与reg1_i(寄存器1)的值 0000 1010相加得到 0000 0100 即 4 这样我能看懂 但是!!!但是!!!!但是!!! 保持reg1_i(寄存器1)的值不变,将reg2_i的值改为-6,对应的二进制代码为1000 0110 此时再做减法操作,将寄存器2的值各位取反加1,根本算不出来呀!!!! 具体代码就是图上圈圈的位置,求各位大神帮小弟解决,第一次发帖,求求帮助!!!困扰我两三天了!,!谢谢! [face]monkey2:019.png[/face][face]monkey2:019.png[/face][face]monkey2:019.png[/face][face]monkey2:019.png[/face][face]monkey2:019.png[/face][face]monkey2:019.png[/face][face]monkey2:019.png[/face]
...全文
394 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
定仙er 2021-04-04
  • 打赏
  • 举报
回复
引用 2 楼 seedundersnow 的回复:
-6不是10000110,而是11111010,取反+1是00000110,和00001010相加,结果是00010000
感谢,已经懂了,因为在计算机中对数据的存储是以补码形式而存储的。我之前一直使用源码来进行计算。[face]monkey2:002.png[/face][face]monkey2:002.png[/face][face]monkey2:002.png[/face][face]monkey2:002.png[/face]
seedundersnow 2021-04-02
  • 打赏
  • 举报
回复
-6不是10000110,而是11111010,取反+1是00000110,和00001010相加,结果是00010000
  • 打赏
  • 举报
回复
这个说的好像就是如果带符号就使用取反加一,不带就是取原值啊,你后面说的是reg2值是-6的时候前面就是+了,-6的二进制码本身就是取反加一。

6,163

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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