常用指令 1.传送指令: MOV arc,dst(arc)=→dst 2.运算指令: Add arc,dst(dst)+(arc)→dst SUB arc. dst (dst)-(arc)→dst 3.比较指令: CMP arc,dst 执行arc-dst,并对状态字PSW相应的标志位置位。 当(arc)=(dst)时,PSW的标志位Z置1。 当arc)-(dst)时,PSW的标志位N置1。 当arc)>(dst)时,PSW的标志位P置 4.控制指令: BR,j」,j=,j≠}ds:分别表示无条件、N=1、NvZ=1、Z=1 和Z=0转移
6 常用指令 1. 传送指令: MOV arc, dst (arc)dst 2. 运算指令:ADD arc, dst (dst)+(arc) dst SUB arc, dst (dst)-(arc)dst 3. 比较指令: CMP arc, dst 执行arc-dst,并对状态字PSW相应的标志位置位。 当(arc)=(dst)时, PSW的标志位Z置1。 当(arc)<(dst)时, PSW的标志位N置1。 当(arc)>(dst)时, PSW的标志位P置1。 4. 控制指令: {BR, j<, j, j=, j} dst: 分别表示无条件、N=1、NZ=1、Z=1 和Z=0转移
常用四元式的的目标代码 、四元式(+,A,B,T)对3、四元式(jnZ,A,一,P) 应的指令为: 对应的指令为 MOVA, RO MOⅤA,R0 addB, RO: CMP RO.O MOV RO. T: 1≠P 其余二元操作四元式的翻译4、四元式(J,一,一,P)对 与此类拟; 应的指令为:BRP; 2、四元式(=,B,一,A)对5、四元式(Jrop,A,B,P) 应的指令为: 对应的指令为 MOVB, RO MOVA, RO MOV RO, A CMP RO, B: Drop P
7 常用四元式的的目标代码 1、四元式(+,A,B,T)对 应的指令为: MOV A,R0; ADD B,R0; MOV R0, T; 其余二元操作四元式的翻译 与此类拟; 2、四元式(=,B,—,A)对 应的指令为: MOV B,R0; MOV R0,A; 3、四元式(jnZ,A,—,P) 对应的指令为: MOV A,R0; CMP R0, 0; j P’; 4、四元式(J,—,—,P)对 应的指令为: BR P’; 5、四元式(Jrop,A,B,P) 对应的指令为 MOV A,R0; CMP R0,B; Jrop P’;
四元式目标地址的确定 (1)在把四元式翻译为目标指令时,是按四元式表中 四元式的顺序依次执行,为计算每个四元式所对应 的目标地址,必须累计每条指令的字节数。到达某 四元式时,所累计的字节数就是该四元式的目标地 址(相对的)。 (2)转移语句中转移地址所指的四元式是基本块的入 口语句,把这种语句按岀现的顺序生成汇编代码标 号L1, 等,并用一张标号表存放起来表格内 容为四元式序号与对应汇编代码标号
8 四元式目标地址的确定 (1)在把四元式翻译为目标指令时,是按四元式表中 四元式的顺序依次执行,为计算每个四元式所对应 的目标地址,必须累计每条指令的字节数。到达某 四元式时,所累计的字节数就是该四元式的目标地 址(相对的)。 (2)转移语句中转移地址所指的四元式是基本块的入 口语句,把这种语句按出现的顺序生成汇编代码标 号L1,L2…...等,并用一张标号表存放起来,表格内 容为四元式序号与对应汇编代码标号
§9.3代码生成程序的雏形 为每个基本块的生成高质量代码: 总的指令条数要少; 尽可能利用寄存器,少产生访问内存的指令,为 此需要充分合理的利用寄存器: 尽可能把后面还要引用的变量仍保存在寄存器中; 应把不再使用的变量所占用的寄存器及时释放掉; 为此需引入两个概念:基本块内变量的引用信息和 活跃信息
9 §9.3 代码生成程序的雏形 • 为每个基本块的生成高质量代码: – 总的指令条数要少; – 尽可能利用寄存器,少产生访问内存的指令,为 此需要充分合理的利用寄存器: • 尽可能把后面还要引用的变量仍保存在寄存器中; • 应把不再使用的变量所占用的寄存器及时释放掉; • 为此需引入两个概念:基本块内变量的引用信息和 活跃信息
引用信息与活跃信息 如果变量A在某点P的值(P是四元式的编号)在从P可 达的某四元式q中被引用,则称变量A在P点是活跃的, 并称四元式q是变量A的引用信息。 (p) A=B+C, A在P点是活跃的 (r) E=A+F (a D=A+v q是变量A的引用信息 假定 ①所有的临时变量均看作是出基本块后的非活跃变量 ②所有的非临时变量都看作是出基本块后的活跃变量
10 引用信息与活跃信息 • 如果变量A在某点P的值(P是四元式的编号)在从P可 达的某四元式q中被引用,则称变量A在P点是活跃的, 并称四元式q是变量A的引用信息。 (p) A=B+C; A在P点是活跃的 (r) E=A+F; ….. (q) D=A+V; q是变量A的引用信息 假定 ①所有的临时变量均看作是出基本块后的非活跃变量。 ②所有的非临时变量都看作是出基本块后的活跃变量