ARM GNU 汇编伪指令简介

来源:本站
导读:目前正在解读《ARM GNU 汇编伪指令简介》的相关信息,《ARM GNU 汇编伪指令简介》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《ARM GNU 汇编伪指令简介》的详细说明。
简介:ARM GNU 汇编伪指令简介

1 ARM GNU 汇编伪指令简介

(1)abort

.abort 停止汇编

(2)align

.align absexpr1,absexpr2

以某种对齐方式,在未使用的存储区域填充值. 第一个值表示对齐方式,4, 8,16或

32. 第二个表达式值表示填充的值

(3)if...else...endif

.if

.else

.endif: 支持条件预编译

(4)include

.include "file": 包含指定的头文件, 可以把一个汇编常量定义放在头文件中

(5)comm

.comm symbol, length:

在bss段申请一段命名空间,该段空间的名称叫symbol, 长度为length. Ld连接器在连接

会为它留出空间

(6)data

.data subsection: 说明接下来的定义归属于subsection数据段

(7)equ

.equ symbol, expression: 把某一个符号(symbol)定义成某一个值(expression).该

指令并不分配空间

(8)global

.global symbol: 定义一个全局符号, 通常是为ld使用

(9)ascii

.ascii "string": 定义一个字符串并为之分配空间

(10)byte

.byte expressions: 定义一个字节, 并为之分配空间

(11)short

.short expressions: 定义一个短整型, 并为之分配空间

(12)int

.int expressions: 定义一个整型,并为之分配空间

(13)long

.long expressions: 定义一个长整型, 并为之分配空间

(14)word

.word expressions: 定义一个字,并为之分配空间, 4 bytes

(15)macro/endm

.macro: 定义一段宏代码, .macro表示代码的开始, .endm表示代码的结束, .exitm

跳出宏, 示例如下:

.macro SHIFTLEFT a, b

.if b < 0

mov a, a, ASR #-b

.exitm

.endif

mov a, a, LSL #b

.endm

(16)req

name .req register name: 为寄存器定义一个别名

(17)code

.code [16|32]: 指定指令代码产生的长度, 16表示Thumb指令, 32表示ARM指令

(18)ltorg

.ltorg: 表示当前往下的定义在归于当前段,并为之分配空间

2 ARM GNU专有符号

(1)@ 表示注释从当前位置到行尾的字符.

(2)# 注释掉一整行.

(3); 新行分隔符.

3 操作码

(1)NOP: nop 空操作, 相当于MOV r0, r0

(2)LDR: ldr <register> , =<expression> 相当于PC寄存器或其它寄存器的长转移

(3)ADR: adr <register> <label> 相于PC寄存器或其它寄存器的小范围转移

(4)ADRL: adrl <register> <label> 相于PC寄存器或其寄存器的中范围转移

提醒:《ARM GNU 汇编伪指令简介》最后刷新时间 2024-03-14 01:04:58,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《ARM GNU 汇编伪指令简介》该内容的真实性请自行鉴别。