.ascii:插入一串不以零结尾的字符。
.asciz:插入一串以零结尾的字符。
.balign:在当前位置插入字节以使地址对齐到指定的字节边界。
.byte:插入一个或多个字节值。
.data:转到数据段,通常用于定义数据信息。
.define:通常用于定义宏或常量符号,但在不同汇编器中使用可能有所不同。
.double:插入一个或多个双精度浮点数。
.extern:声明一个外部符号,表示该符号在其他文件中定义。
.float:插入一个或多个单精度浮点数。
.globl 或 .global:声明一个全局符号,使该符号可被其他文件引用。
.hword:插入一个或多个半字(2字节)值。
.include:包含另一个文件的内容。
.int:插入一个或多个整数,通常等同于 .word。
.lcomm:定义一个本地公共块,用于未初始化的数据。
.local:声明一个本地符号,作用域仅限于当前文件。
.long:插入一个或多个长整型值,通常等同于 .word。
.org:设定位置计数器,用于控制数据或代码段的位置。
.quad:插入一个或多个四字(8字节)值。
.section:切换到一个特定的段(section),用于控制数据和代码的组织。
.short:插入一个或多个短整型值,通常等同于 .hword。
.skip:跳过指定的字节数,通常用于分配未初始化的空间。
.space:分配指定字节数的未初始化存储空间。
.string:插入一个以零结尾的字符串。
.text:转到代码段,通常用于定义代码。
.word:插入一个或多个字(4字节)值。
.macro:定义一个宏,宏是一个可以重复使用的指令集合。
.endm:结束一个宏定义。
.irp:处理一个参数列表,生成相应的代码,每个参数值替换该列表中的一个元素。
.irpc:处理一个字符列表,分别生成相应的代码,每个字符替换该列表中的一个元素。
.if:条件编译指令,根据表达式是否为真来决定是否编译后续代码块。
.else:与.if联合使用,表示如果.if条件为假时应该编译的代码块。
.else_if:类似于.else,但可以扩展if条件。
.endif:结束一个.if条件块。
.equ:定义一个符号并给它赋值。
.equiv:定义一个符号并给它赋值,但如果符号已经定义则报错。
.fill:生成由指定数量的常数组成的块。
.incbin:包含一个二进制文件的内容。
.incdir:指定搜索包含文件的目录(等同于C语言的#include搜索路径)。
.include:包含另一个汇编文件的内容。
.pushsection:保存当前段选择并切换到指定的段。
.popsection:恢复到之前的段选择。
.repeat:重复一个代码块指定的次数。
.size:定义一个符号的大小。
.type:定义一个符号的类型。
.val:设置表达式结果相同类型的符号。
.macro 和 .endm: 用于定义一个宏和结束宏定义。宏是一个具有参数的代码片段。
.macro LOAD reg, val
lw \reg, \val
.endm
.irp 和 .irpc: 用于生成重复的代码,irp 适用于参数列表, irpc 适用于字符列表。
.irp reg, r0, r1, r2, r3
mov \reg, #0
.endr
mov r0, #0
mov r1, #0
mov r2, #0
mov r3, #0
.if, .else, .else_if, .endif: 条件编译指令,用于根据条件生成不同的代码。
.if condition
// if block
.else
// else block
.endif
.equ 和 .equiv: 定义符号和赋值,.equ 允许重复定义,.equiv 则不允许重复定义。
.equ BUFFER_SIZE, 1024
.equiv UNIQUE_NAME, 1
.fill: 按指定模式填充数据块。
.fill 10, 1, 0xFF // 填充10字节,每字节0xFF
incbin, .incdir, .include: 包含外部文件内容,.incbin用于二进制文件,.include用于汇编文本文件。
.incbin "path/to/binaryfile.bin"
.include "otherfile.s"
.repeat: 重复生成代码指定次数。
.repeat 10
nop
.endr
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。