汇编程序

2018-04-10 14:40:00 浏览数 (1)

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"就是机器所要的执行文件啦!

0 人点赞