|
表12.1(a) |
|
类型 |
指令形式 |
意义(设op是二目运算符) |
直接地址型
寄存器型
变址型
间接型 |
op Ri,M
op Ri,Rj
op Ri,c(Rj)
op Ri,*M
op Ri,*Rj
op Ri,*c(Rj) |
(Ri)op(M) Ri
(Ri)op(Rj) Ri
(Ri)op((Rj)+c) Ri
(Ri)op((M)) Ri
(Ri)op((Rj)) Ri
(Ri)op(((Rj)+c)) Ri |
|
如果op是一目运算符,则"op Ri,M"的意义为: op(M) Ri,其余类型可类推。
以上指令中的运算符(操作码)op包括一般计算机上常见的一些运算符。我们将某些指令的意义说明如表12.1(b)。
|
表12.1(b) |
|
指令 |
意义 |
指令 |
意义 |
LD Ri,B
.
ST Ri,B
.
J X
CMP A,B |
把B单元的内容取到寄存器 Ri,即(B) Ri。
把寄存器Ri的内容存到B单元,即(Ri) B。
无条件转向X单元。
把A单元和B单元的值进行比较,并根据比较情况把机器内部特征寄存器CT置成相应状态。CT占两个二进位。根据A<B或A=B或A>B分别置CT为0或1或2。 |
J<X
J≤X
J=X
J≠X
J>X
J≥X |
如CT=0转X单元。
如CT=0或CT=1转X单元。
如CT=1转X单元。
如CT≠1转X单元。
如CT=2转X单元。
如CT=2或CT=1转X单元。 |
|
思考问题:
① 代码生成器的设计要着重考虑哪些问题?
② 决定目标代码的因素有哪些? |