网站大量收购闲置独家精品文档,联系QQ:2885784924

解译编译如何处理.ppt

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

机器语言, 汇编语言, 与编译器 β 机器语言: 32-bit 指令 编码二进制指令 解译 编译 解译 与 编译 之比较 软件: 抽象对策 抽象步骤 1: 一个写程序的程序 UASM 原始语言 符号表示之手势 卷标(表示地址的符号) 强而有力的微指令 指令之汇编语言 最后, Beta 指令 汇编语言的例子 找不到指令? 假造一个! 抽象步骤 2: 高级语言 编译器是如何运作的呢? 编译表示式 数据结构: 数组 数据结构: 结构 条件式 循环 最佳化 我们最爱的阶乘程序 最佳化 完成最佳化… 下回: 程序 及 堆栈 *10/22/0 很久很久以前,我仍记得我是如何瞧不起 记忆术… 而且我知道我可以玩BSim游戏与处 理一些宏好一阵子, 只要我有操作码 的名字. 但是6.004课程的每一堂课都令我打颤. 新来坏消息, 我无法再读一个规格. 我无法记忆当我试着最佳化阶乘, 但在我的Beta死去的那天, 有些东西触 动了我讨人厌的傲慢, 于是我唱… 当我在我的程序代码中发现一堆 麻烦时, 朋友和同事跟我说了 一句名言, “用C来写吧” 参考: β 文件; 实验 #5B; C 语言讲议 How can we improve the programmability of the Beta? Ra 及 Rb 是操作区域, Rc 是目的地. R31 为 0, 不被写入指令改变 运算: ADD, SUB, MUL, DIV 比较: CMPEQ, CMPLT, CMPLE 布尔: AND, OR, XOR 位移: SHL, SHR, SAR 运算: ADDC, SUBC, MULC, DIVC 比较: CMPEQC, CMPLTC, CMPLEC 布尔: ANDC, ORC, XORC 位移: SHLC, SHRC, SARC 分流: BNE/BT, BEQ/BF (const = 从 PCNEXT转移的字组(word)数) 跳跃: JMP (const not used) 内存存取: LD, ST (const = 从Reg[ra]偏移的字节(byte)数) 二的补码的16位常数, 表示从 –32768 到 32767 的数字; 使用前将它延伸符号至32位. 32-bit (4-byte) ADD 指令: OpCode Rc Ra Rb (unused) 对BETA来说, 表示 Reg[4] = Reg[2] + Reg[3] 但, 我们通常喜欢写成 ADD(R2, R3, R4) (汇编语言) 或, 再更好一点, a = b+c; (高级语言) 软件达成方法: 解译, 编译 Turing的解译模型: 解译的“层级” : 通常我们可以使用多个解译层级来达到想要的行为, 例如: X86 (Pentium), 执行 系统(Scheme), 执行 应用程序, 解译 资料. 从某个”不易写程序”的通用计算机, 称之M1, 开始 写一个小的M1程序来模仿一个比较容易的计算机, 称之M2 结果: 一个”虚拟”的M2 编译模型: 给定某个”不易写程序”的计算机, 称之 M1... 找到某个”容易写程序”的语言 L2 (也许是一个更复杂的计算机, M2); 以这个语言来写程序 建立一个翻译器(编译器) 可以将程序从M2语言翻译成M1语言. 可以在M1, M2, 或其它的计算机上执行. 解译 编译: 两种帮助加强可程序性的工具 ... 两者都可以改变程序模型 两者都提供与平台(如, 处理器)无关的程序应用 两者都在现代计算机系统中被广泛使用! 这两个强力的工具之间有一些特性上的差异... 我们会重复看到旳主要的设计选项: 在编译时间或执行时间做? 解译 编译 如何处理 “x+2” 何时发生 哪里复杂/慢 何时做决定 计算 x+2 产生一个程序来计算x+2 执行时 执行前 程序执行 程序建构 执行时间 编译时间 第一步: 编译工具 组合器 (UASM): 机器语言的符号表示式 编译器 (C): 算法的符号表示式 接下来的步骤: 解译工具 操作系统 应用程序 (例如: 浏览器) 隐藏: 位级的表示式, 16进位地址, 二进制数值 隐藏: 机器指令, 缓存器, 机器架构 隐藏: 资源 (内存, CPU, I/O) 限制及细节 隐藏: 网络; 地址; 区域参数 UASM - 6.004 (宏) 使用的汇编语言 将被加载内存的字节串流 UASM: 1. 一个符号表示的语言, 用以表示字符串 2. 一个程序 (“组合器” = 简易的编译器), 将 UASM来源翻译成二进制文件. 符号表示之来源文字文件 UASM 翻译程序 二进制 机器语言 一个 UASM 原始文件包含了, 符号表示

文档评论(0)

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

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

1亿VIP精品文档

相关文档