82目标机器 822指令的代价 指令代价简化为 1+指令的源和目的地址模式的附加代价
8.2 目 标 机 器 8.2.2 指令的代价 • 指令代价简化为 1 + 指令的源和目的地址模式的附加代价
82目标机器 地址模式和它们的汇编语言形式及附加代价 模式 形式地址 附加代价 绝对地址M M 寄存器R R 变址 C(R) c+ contents(r) 1010 间接寄存器* R contents(R 间接变址*C(R) contents(c+ contents(R)1 直接量#c
8.2 目 标 机 器 • 地址模式和它们的汇编语言形式及附加代价 模式 形式 地址 附加代价 绝对地址 M M 1 寄存器 R R 0 变址 c(R) c + contents(R) 1 间接寄存器 R contents(R) 0 间接变址 c(R) contents(c + contents(R)) 1 直接量 #c c 1
82目标机器 822指令的代价 指令代价简化为 1+指令的源和目的地址模式的附加代价 指令 代价 MOV RO, RI MOV R5, M 122 ADD#1, R3 SUB4(R0),*12(R1)3
8.2 目 标 机 器 8.2.2 指令的代价 • 指令代价简化为 1 + 指令的源和目的地址模式的附加代价 指令 代价 MOV R0,R1 1 MOV R5,M 2 ADD #1, R3 2 SUB 4(R0), 12(R1) 3
82目标机器 例a=b+c,a、b和c都静态分配内存单元 可生成 MOV b RO Add C RO 代价=6 MOV RO.a 也可生成 MOV b a ADD ca 代价=6
8.2 目 标 机 器 • 例 a = b + c, a、b和c都静态分配内存单元 - 可生成 MOV b, R0 ADD c, R0 代价= 6 MOV R0, a - 也可生成 MOV b, a ADD c, a 代价= 6
82目标机器 例a=b+c,a、b和c都静态分配内存单元 若R0,R1和R2分别含a,b和c的地址,则 可生成 MOV *RI*RO ADD*R2,*R0代价 若R1和R2分别含b和c的值,并且b的值在 这个赋值后不再需要,则可生成 ADDR RI MOVRI.a 代价=3
8.2 目 标 机 器 • 例 a = b + c, a、b和c都静态分配内存单元 - 若R0,R1和R2分别含a,b和c的地址,则 可生成 MOV R1, R0 ADD R2, R0 代价= 2 - 若R1和R2分别含b和c的值,并且b的值在 这个赋值后不再需要,则可生成 ADD R2, R1 MOV R1, a 代价= 3