架构 -- 汇编语言

栏目: 编程语言 · 发布时间: 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/

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


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

查看所有标签

猜你喜欢:

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

图解物联网

图解物联网

[ 日] NTT DATA集团、河村雅人、大塚纮史、小林佑辅、小山武士、宫崎智也、石黑佑树、小岛康平 / 丁 灵 / 人民邮电出版社 / 2017-4 / 59.00元

本书图例丰富,从设备、传感器及传输协议等构成IoT的技术要素讲起,逐步深入讲解如何灵活运用IoT。内容包括用于实现IoT的架构、传感器的种类及能从传感器获取的信息等,并介绍了传感设备原型设计必需的Arduino等平台及这些平台的选择方法,连接传感器的电路,传感器的数据分析,乃至IoT跟智能手机/可穿戴设备的联动等。此外,本书以作者们开发的IoT系统为例,讲述了硬件设置、无线通信及网络安全等运用Io......一起来看看 《图解物联网》 这本书的介绍吧!

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

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具