架构 -- 汇编语言

栏目: 编程语言 · 发布时间: 5年前

  1. 在第一门面向 程序员 的编程语言出现前,只能通过理解 CPU指令的二进制表示 ,将程序以 二进制数据的方式 刻录到存储上
  2. 这个时期, 编程的效率极其低下 ,软件和硬件的边界还非常 模糊 ,把程序刻录到存储上往往还涉及到硬件的 电气操作

汇编语言

  1. 为了解决 编程效率 的问题,诞生了汇编语言(和解释它的编译器)
  2. 汇编语言的编译器将汇编语言写的程序编译成 CPU指令序列 ,并将其保存到 外置存储
  3. 汇编语言 非常接近 计算机的CPU指令,一条汇编指令基本和一条CPU指令 一一对应

意义

  1. 汇编语言的出现,让编程成为了一个 纯软件 行为
  2. 程序员可以 反复修改 汇编程序,然后通过汇编编译器将其翻译成机器语言,并写入到外置存储中

效率优化

  1. 文本符号 表达 机器指令
    • 例如add表示加法运算,而不用记忆对应的CPU指令的二进制表示
  2. 文本符号 表达要操作的 内存地址 ,并支持 内存地址的自动分配
    • 例如使用了一段文本Hello,那么汇编编译器将为程序开辟一段 静态存储区 (数据段)来存放这段文本
    • 并用一个文本符号(变量名)指向它,用 变量名 去表达一段内存数据
    • 这样就 不用关注内存的物理地址 ,而把精力放在程序的逻辑表达上
  3. 文本符号 表达要调用的 函数地址
    • CPU指令 来说, 函数只有地址没有名字
    • 编程 的角度来说, 函数是机器指令的扩展
    • 和机器指令需要用文本符号助记一样,函数的名称也需要用文本符号来助记
  4. 文本符号 表达要 跳转的目标地址
    • 在高级语言里,流程控制的语法很多,例如goto/if/else/for/while/until等
    • 汇编语言 里,只有两个基本的跳转指令:无条件跳转( jmp )和条件跳转( je/jne
    • 同样,跳转的目标地址用文本符号有助于程序逻辑的表达,而无需把精力放在具体的指令跳转地址上
  5. 小结
    • 汇编从 指令能力 上来说,和 机器指令一致
    • 汇编把人们从 物理硬件地址 中解脱出来, 专注于程序逻辑的表达

MVP

  1. 键盘和显示器的驱动程序
  2. 当时最主流的外置存储设备的驱动程序
  3. 汇编程序 编辑器 :可以从存储中读取汇编程序代码,修改并保存到存储中
  4. 汇编程序 编译器 :可以将汇编代码编译成机器代码,并保存在存储中
  5. 执行机器代码的程序:可以执行一段保存在外置存储设备中的机器代码

汇编与操作系统

  1. 汇编程序的出现要 早于 操作系统
  2. 操作系统的 核心目标软件治理 ,只有在计算机需要管理很多任务时,才需要操作系统

转载请注明出处:http://zhongmingmao.me/2019/04/23/architecture-assembly-language/

访问原文「架构 -- 汇编语言」获取最佳阅读体验并参与讨论


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法交易:制胜策略与原理

算法交易:制胜策略与原理

[美]欧内斯特·陈(Ernest P. Chan) / 高闻酉、黄蕊 / 机械工业出版社 / 49.00

本书是一本引人入胜、信息量大、覆盖各类交易策略的图书。无论个人投资者,还是机构投资者,都可以借鉴和使用其中的策略。本书中的策略大致可分为均值回归系统和动量系统两大类。书中不仅介绍了如何使用每种类别的交易策略,更解释了各种策略之所以有效的原因。本书始终以简单、线性的交易策略为重心,因为复杂的交易策略容易受到过度拟合及数据窥探的侵害。数学和软件是算法交易的两条腿。本书用到了一定程度的数学知识,使其对各......一起来看看 《算法交易:制胜策略与原理》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具