前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >汇编程序

汇编程序

作者头像
linxinzhe
发布2018-04-10 14:40:00
6780
发布2018-04-10 14:40:00
举报
文章被收录于专栏:林欣哲林欣哲

ISA指令集是由0和1组成的机器语言,难以记忆和阅读,因此人们发明汇编程序帮助记忆。

汇编基本算是和机器指令一一对应的关系,可以认为是给机器指令的每个部分分别起了别名。

一、汇编程序的组成

  1. 操作码和操作数: 操作码如ADD表示bit[15:12]=0001,AND表示bit[15:12]=0101,操作数R0表示编号为0的寄存器。
  2. 标号: 指向内存单元的一个符号名,有两种用途,一种用于跳转命令跳转的地址,另一种用于读取或存储指令时访问的内存位置
  3. 注释: 以";"开头的字符串,只给人阅读的,汇编翻译程序会忽略

另外,汇编器还定义了一些伪操作,可以让程序员指导汇编编译器的翻译过程。 比如ORIG表示程序起始位置,FILL表示占用这个命令的下一个地址。

二、汇编过程

汇编编译器会做一个叫做两遍扫描的操作。

  1. 先读一遍汇编程序,找出前面提到的汇编的标号,做出一张符号表把标号和内存地址一一对应。
  2. 再真正翻译汇编程序成机器指令,遇到标号则通过上一步生成的符号表转化为对应内存地址。

汇编程序文件通常以".asm"结尾,编译后的结果是".obj"结尾的文件,有的汇编编译器还会生成".sym"表示符号表。

最终的".obj"就是机器所要的执行文件啦!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 林欣哲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档