一、伪指令
伪指令的概念:伪指令和指令一样都是会生成机器码的指令,但伪指令与指令的区别是:每条汇编指令都有对应的唯一一条机器码,而伪指令可以有很多一条机器码,也可以理解为伪指令是有很多一条汇编指令组合而成。

二、伪操作
伪操作:告诉编译器怎么去编译指令,而它本身不生成机器码(类似于C中的宏)@@而对于不同的编译器下所对应的伪操作都是不同的@@这里说的是基于GUN(GCC)下的伪操作
@@伪操作一般以’ . '开头类似于C中的‘ # ’
@@伪操作
@.glabl symbol
@@把SYMBOL字符声明为全局 同一工程下的.S也可以使用
@.local symbol
@@把symbol字符声明为局部
@@.eql DATA, 0X123
@类似于宏定义 #define DATA 0X123 @调用的时候MOV R1 ,#DATA
@@函数封装
@.macro FUNC
@mov r1,#0x12
@mov r2,#0x34
@.endm
@这样就相当于写了一个FUNC的函数,下次就可以直接调用
@条件编译
@.if 0
@.....
@.....
@.endif
@重复操作
@@.rept 3
@mov r1,#0x12
@mov r2,#0x34
@endr
@@重复MOV 3次
@.weak FUN
@@弱化FUN,即没有定义FUN也不要管他 相当于NOP 操作
@在当前空间申请空间并初始化
@.baty @.word
@使用.baty要重新字节对齐
@字节对齐.align 2
@按2的2次方对齐
@.arm
@使用ARM指令
@.thumb
@使用thunmb指令
@.TEXT
@.END
STOP:
B STOP
.end @汇编程序结束

本文深入探讨了汇编语言中的伪指令和伪操作,它们并不直接生成机器码,而是指导编译器如何处理指令。伪指令如.glbl、.local用于变量声明,.eql类似宏定义,.macro和.endm实现函数封装,.if和.endif进行条件编译,.rept用于重复操作,.weak定义弱符号,.align进行内存对齐,.arm和.thumb切换指令集,.TEXT和.END标记程序开始和结束。这些概念对于理解和编写高效的汇编程序至关重要。
3342

被折叠的 条评论
为什么被折叠?



