ZHCU875Z August 2001 – October 2023 SM320F28335-EP
这些指令可将汇编语言程序的各个部分与相应的段相关联:
Chapter2详细讨论了这些段。
下面的示例显示了如何使用段指令将代码和数据与正确的段相关联。这是一个输出列表;第 1 列显示行号,第 2 列显示 SPC 值。(每个段都自带程序计数器,即 SPC。)当代码第一次被放入某个段中时,它的 SPC 值等于 0。当用户在汇编其他代码后继续汇编到某个段时,该段的 SPC 会恢复计数,就好像之间没有代码一样。
该示例中的指令执行以下任务:
.text | 用值 1、2、3、4、5、6、7 和 8 初始化字。 |
.data | 用值 9、10、11、12、13、14、15 和 16 初始化字。 |
var_defs | 用值 17 和 18 初始化字。 |
.usect | 保留 19 个字 |
xy | 保留 20 个字。 |
.bss 和 .usect 指令不会结束当前段或开始新段;它们会保留指定的空间量,然后汇编器继续将代码或数据汇编到当前段中。
1 ***************************************************
2 * Start assembling into the .text section *
3 ***************************************************
4 000000 .text
5 000000 0001 .word 1, 2
000001 0002
6 000002 0003 .word 3, 4
000003 0004
7
8 ***************************************************
9 * Start assembling into the .data section *
10 ***************************************************
11 000000 .data
12 000000 0009 .word 9, 10
000001 000A
13 000002 000B .word 11, 12
000003 000C
14
15 ***************************************************
16 * Start assembling into a named, *
17 * initialized section, var_defs *
18 ***************************************************
19 000000 .sect "var_defs"
20 000000 0011 .word 17, 18
000001 0012
21
22 ***************************************************
23 * Resume assembling into the .data section *
24 ***************************************************
25 000004 .data
26 000004 000D .word 13, 14
000005 000E
27 000000 sym .usect ".ebss", 19 ; Reserve space in .ebss
28 000006 000F .word 15, 16 ; Still in .data
000007 0010
29
30 ***************************************************
31 * Resume assembling into the .text section *
32 ***************************************************
33 000004 .text
34 000004 0005 .word 5, 6
000005 0006
35 000000 usym .usect "xy", 20 ; Reserve space in xy
36 000006 0007 .word 7, 8 ; Still in .text
37 000007 0008