mips 里sra和srl指令有什么区别
时间: 2023-07-29 14:09:14 浏览: 1254
在 MIPS 汇编指令中,SRA 和 SRL 都是移位指令,但它们的功能不同。
SRA (Shift Right Arithmetic) 指令是算术右移指令,它将一个寄存器中的二进制数向右移动指定的位数,移动过程中最高位保持不变,即移位后最高位填充原来的符号位。例如:将 $t0$ 寄存器中的数右移 2 位,可以使用以下指令:`sra $t0, $t0, 2`。
SRL (Shift Right Logical) 指令是逻辑右移指令,它将一个寄存器中的二进制数向右移动指定的位数,移动过程中最高位始终填充 0。例如:将 $t0$ 寄存器中的数右移 2 位,可以使用以下指令:`srl $t0, $t0, 2`。
因此,SRA 和 SRL 指令的区别在于移位过程中最高位的处理方式不同。
相关问题
mips中sra和srl的区别
MIPS中的SRA和SRL指令都是移位指令,但它们之间有一些区别。
SRA指令是算术右移,它将寄存器中的值向右移动指定的位数,并在左侧插入符号位。也就是说,如果最高位为1,则在右移过程中会在左侧插入1;如果最高位为0,则在右移过程中会在左侧插入0。例如,如果将寄存器R1中的值右移3位,则结果将是R1/8。
SRL指令是逻辑右移,它将寄存器中的值向右移动指定的位数,并在左侧插入0。也就是说,在右移过程中不会考虑符号位。例如,如果将寄存器R1中的值右移3位,则结果将是R1/8。
因此,SRA和SRL的主要区别在于它们在右移过程中如何处理符号位。
MIPS CPU 36条指令设计
以下是MIPS CPU的36条指令设计:
1. ADD - 加法
2. ADDI - 立即数加法
3. ADDU - 无符号加法
4. ADDIU - 无符号立即数加法
5. SUB - 减法
6. SUBU - 无符号减法
7. MULT - 乘法
8. MULTU - 无符号乘法
9. DIV - 除法
10. DIVU - 无符号除法
11. AND - 与运算
12. ANDI - 立即数与运算
13. OR - 或运算
14. ORI - 立即数或运算
15. XOR - 异或运算
16. XORI - 立即数异或运算
17. SLL - 逻辑左移
18. SRL - 逻辑右移
19. SRA - 算术右移
20. SLT - 小于比较
21. SLTI - 立即数小于比较
22. SLTU - 无符号小于比较
23. SLTIU - 无符号立即数小于比较
24. LUI - 加载立即数高位
25. LW - 加载字
26. SW - 存储字
27. LB - 加载字节
28. LBU - 加载无符号字节
29. SB - 存储字节
30. BEQ - 等于分支
31. BNE - 不等于分支
32. J - 无条件跳转
33. JR - 寄存器跳转
34. JAL - 有链接的跳转
35. JALR - 有链接的寄存器跳转
36. NOP - 空操作
阅读全文