ZHCU875Z August 2001 – October 2023 SM320F28335-EP
表 5-1 至表 5-16 汇总了汇编器指令。除文中所述的汇编器指令之外,TMS320C28x 软件工具还支持以下指令:
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .bss symbol, size in words [, blocking flag [, alignment] ] | 在 .bss(未初始化数据)段中保留size 个字 | .bss 主题 |
| .data | 汇编到 .data(已初始化的数据)段 | .data 主题 |
| .sblock | 指定要分块的段 | .sblock 主题 |
| .sect "section name" | 汇编到命名(已初始化)段 | .sect 主题 |
| .text | 汇编到 .text(可执行代码)段 | .text 主题 |
| symbol .usect "section name", size in words [, blocking flag[, alignment flag]] |
在命名(未初始化)段中保留 size 个字 | .usect 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .endgroup | 结束组声明。(仅限 EABI) | .endgroup 主题 |
| .gmember section name | 将 段名 指定为该组成员。(仅限 EABI) | .gmember 主题 |
| .group group section name group type : | 开始组声明。(仅限 EABI) | .group 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .clink "section name" | 为当前段或指定段启用条件链接。(仅限 COFF) | .clink 主题 |
| .retain "section name" | 指示链接器在链接的输出文件中包含当前段或指定段,无论该段是否被引用。(仅限 EABI) | .retain 主题 |
| .retainrefs "section name" | 指示链接器包含引用当前段或指定段的任何数据对象。(仅限 EABI) | .retain 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .bits value1[, ..., valuen] | 在当前段中初始化一个或多个连续位 | .bits 主题 |
| .byte value1[, ..., valuen] | 在当前段中初始化一个或多个连续字 | .byte 主题 |
| .char value1[, ..., valuen] | 在当前段中初始化一个或多个连续字 | .char 主题 |
| .cstring {expr1|"string1"}[,..., {exprn|"stringn"}] | 初始化一个或多个文本字符串 | .string 主题 |
| .field value[, size] | 使用值 初始化 size 位 (1-32) 字段 | .field 主题 |
| .float value1[, ..., valuen] | 初始化一个或多个 32 位、IEEE 单精度、浮点常量 | .float 主题 |
| .int value1[, ..., valuen] | 初始化一个或多个 16 位整数 | .int 主题 |
| .long value1[, ..., valuen] | 初始化一个或多个 32 位整数 | .long 主题 |
| .pstring {expr1|"string1"}[,..., {exprn|"stringn"}] | 将字符串中的 8 位字符放置在当前段中。 | .pstring 主题 |
| .string {expr1|"string1"}[,..., {exprn|"stringn"}] | 初始化一个或多个文本字符串 | .string 主题 |
| .ubyte value1[, ..., valuen] | 在当前段中初始化一个或多个连续无符号字节 | .ubyte 主题 |
| .uchar value1[, ..., valuen] | 在当前段中初始化一个或多个连续无符号字节 | .uchar 主题 |
| .uint value1[, ..., valuen] | 初始化一个或多个无符号 32 位整数 | .uint 主题 |
| .ulong value1[, ..., valuen] | 初始化一个或多个无符号 32 位整数 | .long 主题 |
| .uword value1[, ..., valuen] | 初始化一个或多个无符号 16 位整数 | .uword 主题 |
| .word value1[, ..., valuen] | 初始化一个或多个 16 位整数 | .word 主题 |
| .xfloat value1[, ..., valuen] | 将一个或多个浮点常量的 32 位浮点表示放入当前段中 | .xfloat 主题 |
| .xldouble value1[, ..., valuen] | 将一个或多个浮点双精度常量的 64 位浮点表示放入当前段中 | .xfloat 主题 |
| .xlong value1[, ..., valuen] | 将一个或多个 32 位值放入当前段的连续字中 | .xlong 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .align [size in words ] | 在 size in words(必须是 2 的幂)指定的边界上对齐 SPC;默认为 64 字节或页边界 | .align 主题 |
| .bes size | 在当前段中保留 size 个位;一个标签指向保留空间的末尾 | .bes 主题 |
| .space size | 在当前段中保留 size 个字;一个标签指向保留空间的开头 | .space 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .drlist | 允许列出所有指令行(默认) | .drlist 主题 |
| .drnolist | 禁止列出特定指令行 | .drnolist 主题 |
| .fclist | 允许列出错误条件代码块(默认) | .fclist 主题 |
| .fcnolist | 禁止列出错误条件代码块 | .fcnolist 主题 |
| .length [page length] | 设置源代码列表的页长度 | .length 主题 |
| .list | 重新启动源代码列表 | .list 主题 |
| .mlist | 允许列出宏和循环块(默认) | .mlist 主题 |
| .mnolist | 禁止列出宏和循环块 | .mnolist 主题 |
| .nolist | 停止源代码列表 | .nolist 主题 |
| .option option1[, option2 , ...] | 选择输出列表选项;可用的选项有 B、L、M、R、T、W 和 X | .option 主题 |
| .page | 在源列表中弹出一页 | .page 主题 |
| .sslist | 允许列出展开的替代符号 | .sslist 主题 |
| .ssnolist | 禁止列出展开的替代符号(默认) | .ssnolist 主题 |
| .tab size | 将制表符设为 size 个字符 | .tab 主题 |
| .title "string" | 在列表页标题中列印一个标题 | .title 主题 |
| .width [page width] | 设定源代码列表的页宽度 | .width 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .copy ["]filename["] | 包括来自另一个文件的源语句 | .copy 主题 |
| .include ["]filename["] | 包括来自另一个文件的源语句 | .include 主题 |
| .mlib ["]filename["] | 指定从中检索宏定义的宏库 | .mlib 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .common symbol, size in bytes [, alignment] .common symbol, structure tag [, alignment] |
为变量定义通用符号。(仅限 EABI) | .common 主题 |
| .def symbol1[, ..., symboln] | 标识在当前模块中定义并且可以在其他模块中使用的一个或多个符号。 | .def 主题 |
| .global symbol1[, ..., symboln] | 标识一个或多个全局(外部)符号。 | .global 主题 |
| .ref symbol1[, ..., symboln] | 标识用在当前模块中并在其他模块中定义的一个或多个符号。 | .ref 主题 |
| .symdepend dst symbol name[, src symbol name] | 创建从段到符号的人工引用。 | .symdepend 主题 |
| .weak symbol name | 标识用在当前模块中并在其他模块中定义的符号。(仅限 EABI) | .weak 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .asg ["]character string["], substitution symbol | 为替代符号 分配字符串。由 .asg 创建的替代符号可以重新定义。 | .asg 主题 |
| .define ["]character string["], substitution symbol | 为替代符号 分配字符串。由 .define 创建的替代符号无法重新定义。 | .asg 主题 |
| .elfsym name, SYM_SIZE(size) | 提供 ELF 符号信息。(仅限 EABI) | .elfsym 主题 |
| .eval expression, substitution symbol |
对数字替代符号 执行算术运算 | .eval 主题 |
| .label symbol | 在段中定义加载时可重定位标签 | .label 主题 |
| .newblock | 取消定义局部标签 | .newblock 主题 |
| symbol .set value | 使值 等同于符号 | .set 主题 |
| .unasg symbol | 取消将符号 分配为替代符号 | .unasg 主题 |
| .undefine symbol | 取消将符号 分配为替代符号 | .unasg 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .if condition | 如果条件 成立,则汇编代码块 | .if 主题 |
| .else | 如果 .if 条件 为不成立,则汇编代码块。使用 .if 构造时,.else 构造是可选的。 | .else 主题 |
| .elseif condition | 如果 .if 条件 不成立,且 .elseif 条件成立,则汇编代码块。使用 .if 构造时,.elseif 构造是可选的。 | .elseif 主题 |
| .endif | 结束 .if 代码块 | .endif 主题 |
| .loop [count] | 开始反复汇编代码块;循环计数由 count 确定。 | .loop 主题 |
| .break [end condition] | 如果结束条件 成立,则结束 .loop 汇编。使用 .loop 构造时,.break 构造是可选的。 | .break 主题 |
| .endloop | 结束 .loop 代码块 | .endloop 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .cstruct | 行为类似于 .struct,但添加了填充和对齐,就像对 C 结构体所做的那样 | .cstruct 主题 |
| .cunion | 行为类似于 .union,但添加了填充和对齐,就像对 C 联合体所做的那样 | .cunion 主题 |
| .emember | 在汇编代码中设置类似 C 语言的枚举类型 | 节 5.9 |
| .endenum | 在汇编代码中设置类似 C 语言的枚举类型 | 节 5.9 |
| .endstruct | 结束结构体定义 | .cstruct 主题,.struct 主题 |
| .endunion | 结束联合体定义 | .cunion 主题,.union 主题 |
| .enum | 在汇编代码中设置类似 C 语言的枚举类型 | 节 5.9 |
| .union | 开始联合体定义 | .union 主题 |
| .struct | 开始结构体定义 | .struct 主题 |
| .tag | 为标签分配结构体属性 | .cstruct 主题,.struct 主题.union 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| macname .macro [parameter1][,..., parametern ] | 开始定义名为 macname 的宏 | .macro 主题 |
| .endm | 终止宏定义 | .endm 主题 |
| .mexit | 转至 .endm | 节 6.2 |
| .mlib filename | 识别包含宏定义的库 | .mlib 主题 |
| .var | 将局部替代符号添加到宏的参数列表 | .var 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .emsg string | 将用户定义的错误信息发送至输出器件;不产生 .obj 文件 | .emsg 主题 |
| .mmsg string | 将用户定义的消息发送至输出器件 | .mmsg 主题 |
| .wmsg string | 将用户定义的警告消息发送至输出器件 | .wmsg 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .asmfunc | 标识包含函数的代码块的开头 | .asmfunc 主题 |
| .endasmfunc | 标识包含函数的代码块的结尾 | .endasmfunc 主题 |
| 助记符和语法 | 说明 | 请参阅 |
|---|---|---|
| .cdecls [options,]"filename"[, "filename2"[, ...] | 在 C 和汇编代码之间共享 C 头文件 | .cdecls 主题 |
| .end | 终止程序 | .end 主题 |
除了可以在代码中使用的汇编指令之外,C/C++ 编译器在创建汇编代码时还会生成若干指令。这些指令只能由编译器使用;请勿尝试使用这些指令: