4.2.1分段结构 定义未初始化段的伪指令 (2).usect伪指令 用于为指定的命名段保留若干个空间。 格式:标号.usect段名",字数[[块标记]儿定位标记] 建立一个自定义段但是没有初始化的段,在自 定义的段中保留空间。 每调用一次.usect伪指令,汇编器在指定的命 名段保留更多的空间。 17
(2) .usect伪指令 用于为指定的命名段保留若干个空间。 格式: 标号 .usect “段名”, 字数 [, [块标记][, 定位标记]] 建立一个自定义段但是没有初始化的段,在自 定义的段中保留空间。 每调用一次.usect伪指令,汇编器在指定的命 名段保留更多的空间。 • 定义未初始化段的伪指令 17 4.2.1分段结构
4.2.1分段结构 ·例4-1:段定义程序举例。 .text .word 1,2,3,4,5,6,7,8 .data .word 9,10,11,12 .word 13,14 .word 15,16 .sect“var1" .word 17,18 .bssx1,19;为.bss段保留19个字单元空间。 y1.usect“var2",40;为var2段保留40个单元空间。 18
• 例4-1:段定义程序举例。 .text .word 1,2,3,4,5,6,7,8 .data .word 9,10,11,12 .word 13,14 .word 15,16 .sect “var1” .word 17,18 .bss x1, 19 ;为.bss段保留19个字单元空间。 y1 .usect “var2”, 40; 为var2段保留40个单元空间。 18 4.2.1分段结构
例4-1:段定义程序举例。 程序建立了5个段,情况如下: .text .text段:8个16位字1~8。 .word1,2,3,4,5,6,7,8 .data段:8个16位字9~16。 .data .word 9,10,11,12 Var1段:2个16位字17,18。 .word 13,14 .word 15,16 .bss段:保留19个字连续空间, .sect “Var1” 首单元的标号是x1。 .word 17,18 .bssx1,19; Var2段:保留40个字连续空间, y1.usect“var2”,40; 首单元的标号是y1。 19
.text段: 8个16位字1~8。 .data段: 8个16位字9~16。 Var1段: 2个16位字17, 18。 .bss段: 保留19个字连续空间, 首单 元的标号是x1。 Var2段: 保留40个字连续空间, 首单元的标号是y1。 例4-1:段定义程序举例。 .text .word 1,2,3,4,5,6,7,8 .data .word 9,10,11,12 .word 13,14 .word 15,16 .sect “var1” .word 17,18 .bss x1,19 ; y1 .usect “var2”, 40; 程序建立了5个段,情况如下: 19
4.2.2汇编器对段的建立 > 当汇编器遇到.text或.data或.sect命令时,将停止对 当前段的汇编(相当于一条结束当前段汇编的命令), 然后将紧接着的程序代码或数据汇编到指定的段中, 直到再遇到另一条.text、.data或.sect命令为止。 .text :初始化文本段 Add:LD 0Fh,A :1字指令(DP直接寻址) Aloop:SUB #1,A :2字指令 BC Aloop,AGEQ 2字指令 .data 初始化数据段 ivals,word0AAh,0BBh,0CCh3组数据放入.data段 20
20 4.2.2 汇编器对段的建立 ➢ 当汇编器遇到.text或.data或.sect命令时,将停止对 当前段的汇编(相当于一条结束当前段汇编的命令), 然后将紧接着的程序代码或数据汇编到指定的段中, 直到再遇到另一条.text、.data或.sect命令为止。 .text Add: LD 0Fh, A Aloop: SUB #1, A BC Aloop, AGEQ .data ivals .word 0AAh,0BBh,0CCh ;初始化文本段 ;1字指令(DP直接寻址) ;2字指令 ;2字指令 ;初始化数据段 ;3组数据放入.data段
4.2.2汇编器对段的建立 >当汇编器遇到.bss或.usect命令时,并不结束当前段的 汇编,只是暂时从当前段脱离出来,并开始对新的段 (.bss或.usect)进行汇编,结束后仍在离开时的段。 .data 初始化数据段 coeff.word 011h,022h,033h ;3组数据放入.data段 .bss buffer,10 :在.bss段保留10个单元 prt .word 0123h :.bss后0123h仍然在.data段 .text 初始化文本段 Add:LD 0Fh,A :1字指令(DP直接寻址) Aloop:SUB #1,A :2字指令 BC Aloop,AGEQ :2字指令 22
22 4.2.2 汇编器对段的建立 ➢ 当汇编器遇到.bss或.usect命令时,并不结束当前段的 汇编,只是暂时从当前段脱离出来,并开始对新的段 (.bss或.usect)进行汇编,结束后仍在离开时的段。 .data coeff .word 011h,022h,033h .bss buffer,10 prt .word 0123h .text Add: LD 0Fh, A Aloop: SUB #1, A BC Aloop, AGEQ ;初始化数据段 ;3组数据放入.data段 ;在.bss段保留10个单元 ;.bss后0123h仍然在.data段 ;初始化文本段 ;1字指令(DP直接寻址) ;2字指令 ;2字指令