2.5计算机中指令表示
指令在计算机内部以一系列或高或低的电信号表示,并且形式上和数的表示相同。实际上,指令的各部分都可看成一个独立的数,将这些数拼接在一起就形成了指令。
MIPS汇编语言中$s0~$s7编号16~23,$t0~$t7编号8~15。
设计原则3:优秀的设计需要好的折中方案
当代计算机基于以下两个重要准则构建:
1、指令用数的形式表示
2、和数据一样,程序存储在存储器中,并且可以读写
高级语言可以被编译成不同的指令集,可以兼容集中指令集,功能来自编译器。
2.6逻辑操作
逻辑左移sll,逻辑右移srl
sll $t2,$s0,4
and or nor(为了保持三种操作数的格式,MIPS引入nor,A nor 0表示not A)
andi ori 对立即数进行操作,但是本节没有给出立即数的指令形式
立即数逻辑操作零扩展,加减运算符号扩展。
C编译器使用MIPS的下列逻辑指令插入和提取字段:and or sll srl
2.7决策指令
beq,bne
条件分支:指令先比较两个值,然后根据比较结果决定是否从程序中的一个新地址开始执行指令序列
无条件分支,j(jump)
slt(set on less than),slti 有符号数
sltu,sltiu无符号数
遵照冯诺依曼等关于“设备”简单性的原则,MIPS体系结构没有提供“小于则分支”指令,因为这样指令过于复杂,它会延长时钟周期,或增加指令的平均执行周期数(CPI)。所以两条更快的指令更加有用。
边界检查的简便方法不严谨,感觉
寄存器跳转指令jr(jump register)