Computer_composition_ch2-2 指令-计算机的语言(二)

本文介绍了MIPS架构中的条件分支指令beq和bne,以及if-else语句、slt指令用于比较大小。还详细讲述了R型和I型指令格式,包括立即数、偏移量和标签的使用。通过实例展示了如何利用这些指令进行条件判定和循环结构设计。
摘要由CSDN通过智能技术生成

决策:条件分支beq和bne

计算机与一般计算器的区别在于决策能力

  1. 相等则分支beq指令,指令在两个源操作数寄存器中的值相同时同时分支
  2. 不等则分支指令bne指令,指令在值不同时分支到标签
    beq/bne s 0 , s0, s0,s1,Label
    如果不发生分支,则继续执行内存中相邻的下一条指令

综合练习3:if-else语句(无条件跳转j和条件分支)
在这里插入图片描述

思路为bne,相等自动顺延执行,不等则跳到else指令,还需要考虑add和sub之间的j指令及时退出


决策:小于则置位slt

除了相等、不等关系,比较两个数大小也常用
MIPS的小于则置位指令slt
置位:将一位设置成1;复位:将一位设置成0

slt $t0, $s1, $ s2
源操作数1<源操作数2吗?
是,将目的操作数寄存器$ s0置位为1
否,将目的操作数寄存器$ s0置位为0


6种条件判定及其伪指令

通过slt、beq、bne的组合即可以实现全部6种比较条件,即六种值为真或假的布尔表达式
结论:判定>或<使用slt和beq,判定>=或<=使用slt和bne
对于比大小的四种比较条件可以使用伪指令blt、bgt、ble、bge


综合练习4:while循环
请添加图片描述
思路考察之前数组元素的累加和无条件跳转j指令的跳回位置


请添加图片描述


指令格式

指令中含3个寄存器的运算指令都属于R型指令
add/sub、add/or/nor、slt
32位的MIPS指令一共分为6个字段
请添加图片描述
op:操作码
rs/rt:源操作数寄存器,s下一个字母为t,且5位对应2^5=32
rd:目的寄存器
shamt:位移量
funct:功能码


指令格式:R型

需要记忆rs和rt寄存器分别为8-15号寄存器和16-23号寄存器
add、sub指令的操作码都是0和功能码分别是32和34
sll/srl也属于R型指令,没有第二个源操作数寄存器,rt置为0


指令格式:I型(立即数)

addi和ori指令
格式是把R型指令中后三个字段拼成16位立即数字段
rd字段被合并了,rt就成了目的寄存器


指令格式:I型(偏移量)

lw和sw
此时16位立即数表示数组元素相对于数组基址的地址偏移量
rs字段表示寄存器值与address字段相加,得到存储器单元地址
rt字段表示与存储器单元交换数据的寄存器
lw、sw指令操作码分别为35和43


指令格式:I型(标签)

beq/bne
同样使用两个寄存器,分支标签的地址用16位立即数字段表示
自学到寻址方式时再做说明


机器语言指令小结请添加图片描述

感谢大家的关注,你们的点赞和收藏是我码字的最大动力:)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SCY新建文件夹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值