GNU的伪操作 (25)

这里主要是 对 GNU的 各个伪操作进行 详细的解释。

先来看着几个 伪操作。

.byte,  .short,  .long,  .quad , .float ,  这个是关于 字节的。

.string   .ascii 是关于字符串的。 这个字符串编译器是可以自动在末尾补0 的。

举例:

val:

        .word 0x11223344

        mov r1, #val

代表将 val 标号处的 四个字节的值 放到 r1 里面。

疑问: 如果这里是8个字节, 那么该怎么使用呢? 一个寄存器只能是 4个字节。

对于 .rept 的举例。

接下来是对这些的解释。

.global 代表这个 变量在其他的文件也可以使用。

.extern 代表使用其他文件的变量。

.arm .thumb,  与 .code 16  , .code32 是同一个意思。

macro 操作

举例:

.macro MOV_PC_LR

.endm

.setction

MOV_PC_LR 

这就是在调用。

然后是带参数的举例:

.macro MOV_PC_LR , param

        mov r1, \param

        mov pc,lr

.endm

MOV_PC_LR ,

这就是在调用。

注意: 参数前面有一个 \

.text , .data, .bss . 代表具体的段的名称。

.align 有两种对齐的方式。

.org  , 这个指令 ,主要是在设置 程序的链接地址。

举例:

.set 与 .equ 都是给变量赋值的意思。

这个就不用解释了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值