操作数指示符
指令通常由操作码(例如movb(传送字节))与操作数组成的
- 操作数指示出一个操作中要使用的源数据的值,以及放置结果的目的位置
- 源数据值可以以常数的形式给出,或是从寄存器或是内存之中读出。
操作符分为三类:
- 立即数
- 寄存器
- 内存引用
立即数:
- 书写方法是‘$’之后+c语言可以表示的整数
- 立即数表示一个常数
寄存器:
- 表示某个寄存器的内容
- 在以下用ra来表示任意寄存器a
- 用R[ra]表示其代表的数值
- 将一个个寄存器想象成一串数组R,R[ra] 就代表具体 寄存器储存具体的值
内存引用
- 将内存想像成为一个连续的数组,当我们知道地址add时,便可以访问具体的值Mb[add],b代表从add开始的b个字节(因为内存是一个空间)
- 内存寻址可以分为计算地址与寻找地址对应的值两部分
注意,ra是寄存器,代表其储存的值
而(ra)是引用,寄存器储存 的值是地址,其值是地址指向的值
操作数格式
格式 | 操作数值 |
---|---|
$Imm | Imm |
ra | R[ra] |
Imm | M[Imm] |
(ra) | M[R[ra]] |
Imm(rb,ri,s) | M[Imm+R[rb]+R[ri]*s] |
s主要有 1 2 4 8由其数据类型决定