欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > GNU的伪操作 (25)

GNU的伪操作 (25)

2026/5/2 6:51:11 来源:https://blog.csdn.net/weixin_44767571/article/details/141957954  浏览:    关键词: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 都是给变量赋值的意思。

这个就不用解释了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com