第10章(2)目标代码生成 n基本问题 n且标机器模型 n一个简单的代码生成器 n寄存器分配(略) nDAG的目标代码(略) n作业 2023/2/28 课程目录)1V16
2023/2/28 第10章(2) 目标代码生成 n 基本问题 n 目标机器模型 n 一个简单的代码生成器 n 寄存器分配(略) n DAG的目标代码(略) n 作业 课程目录 1/16
代码生成概述p279 n逻辑阶段 编译程序的最后一个阶段 n输入和输出中间代码 等价的目标代码 n目标代码的一般形式 u汇编语言代码 「优点:目标程序好读、可移植 F缺点:需经汇编器辅助代码生成 n代码生成器的设计环境 u要依赖于目标机器、指令系统和操作系统。 n指令选择指令集丰富、选择合适。 n 寄存器分配有效合理使用寄存器、提高代码质量。 n计算顺序选择影响代码的有效性。 2023/2/28 国② 2/16
2023/2/28 代码生成概述 p279 n 逻辑阶段 编译程序的最后一个阶段 n 输入和输出 中间代码 等价的目标代码 n 目标代码的一般形式 u 汇编语言代码 F 优点:目标程序好读、可移植 F 缺点:需经汇编器辅助代码生成 n 代码生成器的设计环境 u 要依赖于目标机器、指令系统和操作系统。 n 指令选择 指令集丰富、选择合适。 n 寄存器分配 有效合理使用寄存器、提高代码质量。 n 计算顺序选择 影响代码的有效性。 2/16
目标代码生成器的基本设计要求 n使所生成的目标代码尽可能的短 n能较充分地发挥目标计算机可用资 源的效率 例如: u尽可能地使用执行速度快的指令 u充分利用计算机的寄存器和变址器, 以节省访问内存的时间 2023/2/28 章节目录国216
2023/2/28 目标代码生成器的基本设计要求 n 使所生成的目标代码尽可能的短 n 能较充分地发挥目标计算机可用资 源的效率 例如: u 尽可能地使用执行速度快的指令 u 充分利用计算机的寄存器和变址器, 以节省访问内存的时间 章节目录 3/16
10.4.1目标机模型假想的计算机模型p280 n常备指令arc—源操作数 dst一目的操作数 指令形式 意义 举例 LD dst,arc (arc)▣dst LD R1,B (B)R MOVE LD R1,#1 10 R LDR1,米(4(RO)(Ro)+4)口R1 ST arc,dst (arc)☐dst ST R1,B (R1)B ADD dst,arc (dst)+(arc)dst ADD R1,Ro (Ri)+(Ro)RI SUB dst,arc (dst)-(arc)口dst SUB RI,T1(R)-(①)口R MUL dst,arc(dst)*(arc)口dst MUL R,D(Ri)*(D)口R DIV dst,arc (dst)/(arc)dst DIV R1,A (R1)/(A)R 2023/2/28 章节目录国 4/16
2023/2/28 10.4.1 目标机模型 假想的计算机模型 p280 n 常备指令 arc—源操作数 dst—目的操作数 指令形式 意 义 举 例 LD dst,arc (arc) dst LD R1,B (B) R1 MOVE LD R1,#1 1 R1 LD R1,*(4(R0))(((R0)+4)) R1 ST arc,dst (arc) dst ST R1,B (R1) B ADD dst,arc (dst)+(arc) dst ADD R1,R0 (R1)+(R0) R1 SUB dst,arc (dst)-(arc) dst SUB R1,T1 (R1)-(T1) R1 MUL dst,arc (dst)*(arc) dst MUL R1,D (R1)*(D) R1 DIV dst,arc (dst)/(arc) dst DIV R1,A (R1)/(A) R1 章节目录 4/16
执行代价p280 n衡量目标程序工作效率的指标 u目标程序的长短 u目标程序的执行时间一取决于访问内存的次数 n一条指令执行代价 u定义:执行该指令所需访问内存的总次数 u值=该指令访问内存的次数+1(取指令访问一次内存) n目标程序的执行代价 u定义:各条指令执行代价总和 u特点:该值越低目标程序的执行效率越高 产生目标代码时,应尽可能选用执行代价较小的指令 2023/2/28
2023/2/28 5 执行代价 p280 n 衡量目标程序工作效率的指标 u 目标程序的长短 u 目标程序的执行时间——取决于访问内存的次数 n 一条指令执行代价 u 定义:执行该指令所需访问内存的总次数 u 值=该指令访问内存的次数+1(取指令访问一次内存) n 目标程序的执行代价 u 定义:各条指令执行代价总和 u 特点:该值越低目标程序的执行效率越高 产生目标代码时,应尽可能选用执行代价较小的指令