ARM 汇编

教材:嵌入式系统及应用,罗蕾、李允、陈丽蓉等,电子工业出版社


基本概念

  • ARM 编译器支持汇编语言的程序设计和 C/C++ 语言的程序设计,以及两者的混合编程
  • 汇编语言(Assembly Language)是面向机器的程序设计语言
  • 汇编语言中,用助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言
  • 汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点
  • 在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植
  • 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序(也叫汇编器),汇编程序是系统软件中语言处理系统软件
  • 汇编程序把汇编语言翻译成机器语言的过程称为汇编
  • 汇编语言程序、汇编器和机器码程序之间的关系
    关系
  • 人们设计了一些专门用于指导汇编器进行汇编工作的指令,由于这些指令不形成机器码指令,它们只是在汇编器进行汇编工作的过程中起作用,所以被叫做伪指令
  • 用汇编语言编写的程序叫做汇编语言程序
  • 从源程序翻译成的机器码程序就叫做目标程序

汇编语言的规范

汇编语句格式

  • ARM(Thumb)汇编语言的语句格式为:{<标号>} <指令或伪指令> {;注释}
  • 每一条指令的助记符可以全部用大写或全部用小写,但不允许在一条指令中大小写混用
  • 如果一条语句太长,则可将该长语句分成若干行来书写,每行的末尾用“\”来表示下一行与本行为同一条语句

汇编语言的表达式和运算符

运算次序
  • 优先级相同的双目运算符运算顺序为从左到右
  • 相邻的单目运算符的运算顺序为从右到左
  • 单目运算符的优先级高于双目运算符
  • 括号运算符的优先级最高
数字表达式及运算符
  • +、-、X、/及MOD算术运算符
  • ROL、ROR、SHL及SHR移位运算符
  • AND、OR、NOT及EOR按位逻辑运算符
逻辑表达式及运算符
  • =、>、<、>=、<=、/=、<> 运算符
  • LAND、LOR、LNOT 及 LEOR 运算符
字符串表达式及运算符
  • LEN运算符
  • CHR运算符
  • STR运算符
  • LEFT运算符
  • RIGHT运算符
  • CC运算符
与寄存器和程序计数器(PC)相关的表达式及运算符
  • BASE运算符
  • INDEX运算符
其它常用运算符
  • “?” 运算符
  • DEF 运算符
程序中的变量代换
  • 程序中的变量可通过代换操作取得一个常量,代换操作符为“$”

  • 如果在数字变量前面有一个代换操作符 “$” ,则编译器会将该数字变量的值转换为十六进制的字符串,并将该十六进制的字符串代换 “$” 后的数字变量

  • 如果在逻辑变量前面有一个代换操作符 “$” ,则编译器会将该逻辑变量代换为它的取值(真或假)

  • 如果在字符串变量前面有一个代换操作符 “$” ,则编译器会将该字符串变量的值代换 “$” 后的字符串变量

  • LCLS  s1 ;定义局部字符串变量S1和S2
    LCLS  s2
    s1 SETS “Test !”
    s2 SETS “This is a $s1”  ;s2 为 “This is a Test !”

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值