伪指令是在汇编程序对源程序进行汇编期间由汇编程序处理的操作,它们并不在程序运行期间由计算机执行。伪指令的主要功能包括处理器选择、定义程序模式、定义数据、分配存储区以及指示程序结束等。伪指令在编译时并不生成代码,编译完成后就不存在了。
伪指令具有以下特点:
指令性质:
伪指令是一条指令,它在程序中占有固定的位置,有固定的书写格式,并且与标准指令一样,可以实现特定的功能,但不能用标准指令替代。
非机器指令:
伪指令不是一条真正的指令,没有指令代码。在程序编译过程中,伪指令的功能会被实现,但伪指令本身会被删除,在编译后的目标文件中不会有伪指令的编码。
控制作用:
伪指令对汇编过程起某种控制作用,其格式和通常的操作指令一样,并可加在汇编程序的任何地方,但他们不产生机器指令。
参数支持:
许多伪指令要求带参数,这在定义伪指令时通过“表达式”域指出,任何数值与表达式均可以作为参数。
特定功能:
伪指令可以完成如处理器选择、定义程序模式、定义数据、分配存储区、指示程序结束等功能。
常见的伪指令包括:
EQU:用于为一个数字常量、或一个和内核寄存器相关的数值或一个和程序计数器相关的数值定义一个符号名称,类似于C语言中的`define`。
expr:与内核寄存器相关的地址、绝对地址、与PC相关的地址或32位整型常量。
ADR和 ADRL:用于将相对于程序或相对于寄存器的地址载入寄存器中。
总结来说,伪指令是汇编语言中的一种特殊指令,用于在汇编过程中提供各种控制信息,帮助汇编器正确地进行汇编工作。它们不直接控制机器的操作,也不会在编译后的目标代码中出现。