请以同样的格式将下述指令格式和功能用文字描述:slt bgtz bltz Jalr mult multu div divu mfhi mflo mthi mtlo
时间: 2024-04-01 10:33:57 浏览: 195
下面是各指令的格式和功能:
1. slt $d, $s, $t:如果寄存器$s小于$t,将$d设置为1,否则设置为0。
2. bgtz $s, label:如果寄存器$s大于0,跳转到标签label处执行。
3. bltz $s, label:如果寄存器$s小于0,跳转到标签label处执行。
4. Jalr $d, $s:将寄存器$d设置为下一条指令的地址,然后跳转到寄存器$s中保存的地址处。
5. mult $s, $t:将寄存器$s和$t相乘,结果存储在寄存器$hi和$lo中。
6. multu $s, $t:将寄存器$s和$t无符号相乘,结果存储在寄存器$hi和$lo中。
7. div $s, $t:将寄存器$s除以$t,商存储在寄存器$lo中,余数存储在寄存器$hi中。
8. divu $s, $t:将寄存器$s无符号除以$t,商存储在寄存器$lo中,余数存储在寄存器$hi中。
9. mfhi $d:将寄存器$hi中的值加载到寄存器$d中。
10. mflo $d:将寄存器$lo中的值加载到寄存器$d中。
11. mthi $s:将寄存器$s中的值存储到寄存器$hi中。
12. mtlo $s:将寄存器$s中的值存储到寄存器$lo中。
相关问题
MIPS CPU基本20条整数指令格式和功能,用文字描述
MIPS CPU的基本20条整数指令格式和功能如下:
1. add $rd, $rs, $rt: 将寄存器 $rs 和 $rt 中的值相加,结果存储到目标寄存器 $rd 中。
2. addi $rt, $rs, imm: 将寄存器 $rs 中的值加上立即数 imm,结果存储到目标寄存器 $rt 中。
3. sub $rd, $rs, $rt: 将寄存器 $rs 中的值减去寄存器 $rt 中的值,结果存储到目标寄存器 $rd 中。
4. and $rd, $rs, $rt: 对寄存器 $rs 和 $rt 中的值进行按位与运算,结果存储到目标寄存器 $rd 中。
5. or $rd, $rs, $rt: 对寄存器 $rs 和 $rt 中的值进行按位或运算,结果存储到目标寄存器 $rd 中。
6. slt $rd, $rs, $rt: 如果寄存器 $rs 中的值小于寄存器 $rt 中的值,则将目标寄存器 $rd 中的值设为1,否则设为0。
7. lw $rt, offset($rs): 从存储器中以地址 $rs + offset 为起始地址,读取一个字(4个字节),并将结果存储到目标寄存器 $rt 中。
8. sw $rt, offset($rs): 将寄存器 $rt 中的值存储到存储器中以地址 $rs + offset 为起始地址的位置。
9. beq $rs, $rt, offset: 如果寄存器 $rs 和 $rt 中的值相等,则将 PC 寄存器中的值加上偏移量 offset,跳转到指定地址。
10. bne $rs, $rt, offset: 如果寄存器 $rs 和 $rt 中的值不相等,则将 PC 寄存器中的值加上偏移量 offset,跳转到指定地址。
11. j target: 直接跳转到指定地址 target。
12. jal target: 将当前指令的地址存储到寄存器 $ra 中,然后跳转到指定地址 target。
13. jr $rs: 从寄存器 $rs 中读取地址,并跳转到该地址。
14. lui $rt, imm: 将立即数 imm 左移16位,然后将结果存储到目标寄存器 $rt 的高16位中。
15. sll $rd, $rt, shamt: 将寄存器 $rt 中的值左移 shamt 位,然后将结果存储到目标寄存器 $rd 中。
16. srl $rd, $rt, shamt: 将寄存器 $rt 中的值右移 shamt 位,然后将结果存储到目标寄存器 $rd 中。
17. addu $rd, $rs, $rt: 无符号加法,和 add 指令功能相同。
18. andi $rt, $rs, imm: 对寄存器 $rs 和立即数 imm 进行按位与运算,结果存储到目标寄存器 $rt 中。
19. ori $rt, $rs, imm: 对寄存器 $rs 和立即数 imm 进行按位或运算,结果存储到目标寄存器 $rt 中。
20. sltu $rd, $rs, $rt: 无符号比较大小,和 slt 指令功能相同,但是采用无符号比较。
基本20条MIPS整数指令格式和功能等文字描述
1. ADD:将两个操作数相加,结果存储在目标寄存器中。
2. SUB:将第二个操作数从第一个操作数中减去,结果存储在目标寄存器中。
3. ADDI:将一个立即数加到一个寄存器中,结果存储在目标寄存器中。
4. AND:将两个操作数进行按位与操作,结果存储在目标寄存器中。
5. OR:将两个操作数进行按位或操作,结果存储在目标寄存器中。
6. XOR:将两个操作数进行按位异或操作,结果存储在目标寄存器中。
7. SLT:比较两个寄存器的值,如果第一个小于第二个,则目标寄存器置1,否则置0。
8. SLL:将一个寄存器中的值向左移动指定的位数,结果存储在目标寄存器中。
9. SRL:将一个寄存器中的值向右移动指定的位数,结果存储在目标寄存器中。
10. LW:从内存中加载一个字到一个寄存器中。
11. SW:将一个寄存器中的值存储到内存中的指定位置。
12. BEQ:比较两个寄存器的值,如果相等,则跳转到指定的地址。
13. BNE:比较两个寄存器的值,如果不相等,则跳转到指定的地址。
14. J:无条件跳转到指定的地址。
15. JR:跳转到一个寄存器中存储的地址。
16. JAL:跳转到指定地址,并将返回地址存储在寄存器中。
17. ADDIU:将一个立即数加到一个寄存器中,结果存储在目标寄存器中,不会发生溢出。
18. SLTI:比较一个寄存器中的值和一个立即数,如果寄存器中的值小于立即数,则目标寄存器置1,否则置0。
19. LUI:将一个立即数的高16位加载到一个寄存器的高16位中,低16位置0。
20. NOP:空操作,什么也不做。
阅读全文