MIPS汇编——指令学习笔记

2017-03-29  本文已影响1509人  csRyan

数量单位:


MIPS架构标准的寄存器:

内存:

除了寄存器以外,内存地址也可能作为MIPS指令的操作数,内存中每个字节有一个编号,因此连续的两个word的地址编号相差4。MIPS架构中的地址为32位,也就是说地址编号从0 到 4,294,967,295,每个数字代表内存中的一个byte。

汇编语言与机器码:

汇编语言执行之前要通过assembler翻译成机器码。

整数:

32bits表示整数范围:0 到 +4,294,967,295(无符号数),或–2,147,483,648 到 +2,147,483,647(有符号数)。

位扩展:

两种可能造成位扩展的指令

对于无符号数直接高位补0,对于有符号数高位补符号位。

指令结构:

指令长度都是32bit。

R型结构

R型结构

I型结构

I型结构

移位指令

Shift left logical(sll)
Shift left and fill with 0
sll by i bits multiplies by 2i
Shift right logical(srl)
Shift right and fill with 0
srl by i bits divides by 2i (unsigned only)

位移指令可以用来快速做整数乘除2^n的计算

AND和OR

前面我们说过,使用addi操作16bit的数据会造成位扩展,也就是有时高位补1有时补0。用AND或OR来操作16bit数就不同,只会对高位补0

跳转指令

使用label来指定跳转位置:


比较相等型if
比较大小型if
while结构

尽量只使用简单的beq和bne,它们只需要更短的时钟周期,能避免拖慢始终的速度。

针对unsigned的指令与针对signed的指令的不同

指令名中的u表示该指令将寄存器中的数字当作无符号数处理:

sltui: Set on Less Than Unsigned Immediate

上一篇 下一篇

猜你喜欢

热点阅读