Lyn*_*ynn 0 cpu assembly mips cpu-architecture alu
这是一个家庭作业问题,我被卡住了,因为我不知道如何评估一个值是否大于另一个值。
这是我需要添加的说明:
sgti 指令 - 设置为大于立即数 - 是一种允许在一个值大于另一个值时将寄存器设置为 1 的指令:
sgti rd, rs, imm #if R[rs] > ext32 (imm) 然后 R[rd] = 1 否则 R[rd] = 0
这是我的电路:
例如,我知道如何通过在 UAL 中进行减法并查看是否设置了零来评估一个值是否 == 另一个值,但我不知道如何检查是否大于。谢谢
对于签名加法,会发生溢出
对于有符号减法,会发生溢出
快速阅读这些应该具有数学意义(两个正数之和不能为负)。
您可以检查这些条件以确定溢出。
发生溢出时,您只需比较输入的符号即可确定结果。
所以,这里有一个方法:
检查符号,如果它们相反,则正的更大。
sgti是那么直接的符号,这也是 rd 否定的符号。否则它们要么都是正数要么都是负数,减法应该产生正确的结果而不会溢出
sgti。符号位是高位,MSB,又名第 31 位。
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |