程序的机器级表示.PDF

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序的机器级表示

3 程序的机器级表示 2017年3月11 日 11:29 1. 计算机执行机器代码,用字节序列编码低级的操作,包括处理数据、管理存储 器、读写存储在设备上的数据,以及利用网络通信。 2. 通常情况下,现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手 工编写的代码一样有效。 3. 用高级语言编写的程序可以在很多不同的机器上编译和执行,而汇编代码则是与 特定机器密切相关的。 4. 学习机器代码的意义在于,以适当的命令行选项调用编译器,编译器就会产生一 个以汇编代码形式表示的输出文件,通过阅读这些代码,我们能够理解编译器的 优化能力,并分析代码中隐含的低效率。 分区 《深入理解计算机系统》笔记 的第 1 页 3.1 历史观点 2017年3月11 日 11:40 1. Linux使用平坦寻址(float addressing ),使程序员将整个存储空间看作一个大 的字节数组。 分区 《深入理解计算机系统》笔记 的第 2 页 3.2 程序编码 2017 3 11 11:40 年 月 日 1. 对于机器级编程来说,计算机系统中的两种抽象尤为重要: a. 机器级程序的格式和行为 ,定义为指令集体系结构(Instruction set architecture, ISA ),它定义了处理器状 态、指令的格式,以及每条指令对状态的影响; b. 机器级程序使用的存储器地址是虚拟地址 ,提供的存储器模型看上去是一个非常大的字节数组,存储器系 统的实际实现是将多个硬件存储器和操作系统软件组合起来。 2. 处理器状态: a. 程序计数器(PC, %eip ),指示将要执行的下一条指令在存储器中的地址; b. 整数寄存器,包含八个命名的位置,分别存储32位的值; c. 条件码寄存器,保存着最近执行的算术或逻辑指令的状态信息; d. 一组浮点寄存器,存放浮点数据; 3. 程序存储器(program memory ),包含程序的可执行代码,操作系统需要的一些信息,用来管理过程调用和返 回的运行时栈,以及用户分配的存储器块(如用malloc分配的)。程序存储器用虚拟地址来寻址,在任意给定时 刻,只认为有限的一部分虚拟地址是合法的。虽然IA32的32位地址可以寻址4GB的地址范围,但是通常一个程序 只会访问几兆字节。 4. 操作系统负责管理虚拟地址空间,将虚拟地址翻译成实际处理器存储器(processor memory )中的物理地址。 5. 汇编代码不区分有符号数或无符号数,不区分各种类型的指针,甚至不区分指针和整数。 6. 一条机器指令只执行一个非常基本的操作。 分区 《深入理解计算机系统》笔记 的第 3 页 3.3 数据格式 2017年3月11 日 16:02 1. 由于是从16位体系结构扩展成32位的,Intel用“字”(word )表示16位数据类型。 因此,32位数称为“双字”(double words ),称64位数为“四字”(quad words )。 2. 大多数gcc生成的汇编代码指令都有一个字符后缀,表明操作数的大小: a. movb :传送字节; b. movw :传送字; c. movl :传送双字。 分区 《深入理解计算机系统》笔记 的第 4 页 3.4 访问信息 2017 3 11 16:09 年 月 日 1. 一个IA32 CPU包含一组8个存储32位值的寄存器,如下图: a. 在大多数情况下,前六个寄存器都可以看作是通用寄存器,对它们的使用没有限制。之所 / 以说是在大多数情况下,是因为有些指令以固定的寄存器作为原寄存器和 或目的寄存器; b. 在处理过程中,对%eax、%ecx、%edx的保存和恢复惯例不同于%ebx、%edi和%esi ; c. %esp、%ebp保存着指向程序栈中重要位置的指针,只有根据栈管理的标准惯例才能修改 这两个寄存器

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档