表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单元。
思考问题
  ① 代码生成器的设计要着重考虑哪些问题?
  ② 决定目标代码的因素有哪些?