第4章汇编语言程序设计 定义初始化段的伪 (2)uset伪指令 用于为指定的命名段保留若干个空间。 格式:标号 sect“段名”,字数L块标记定位标记 建立一个自定义段但是没有初始化的段,在自 定义的段中保留空间。 每调用一次 sect伪指令,汇编器在指定的命 名段保留更多的空间
(2) .usect伪指令 用于为指定的命名段保留若干个空间。 格式: 标号 .usect “段名”,字数[, [块标记][, 定位标记]] 建立一个自定义段但是没有初始化的段,在自 定义的段中保留空间。 每调用一次.usect伪指令,汇编器在指定的命 名段保留更多的空间。 第4章 汇编语言程序设计 • 定义未初始化段的伪指令
第4章汇编语言程序设计 ·例4-1:段定义程序举例。 text Word12,345678 data Word9,10,11,12 word 13 14 word 15, 16 sect“var1 word 17,18 bssx1,19;为bss段保留19个字单元空间。 y1 sect"var2",40;为va段保留40个单元空间
• 例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个单元空间。 第4章 汇编语言程序设计
例4-1:段定义程序举例。 程序建立了5个段,情况如下: tet段:8个16位字1~8 text word12,3,435,6,7,8 data段:8个16位字9~16 data var段:2个16位字17,18。 Word9,10,11,12 word. 4 bs段:保留1个字的连续空间,Mwd1516 第一个单元的标号是x1。 sect“var1 Var段:保留40个字的连续空w17,18 间,第一个单元的标号是y1。 bss x1.19 y1. sect“var2”,40;
.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个段,情况如下:
第4章汇编语言程序设计 422汇编器对段的建立 当汇编器遇到tex或data或sec命令时,将停止 对当前段的汇编(相当于一条结束当前段汇编的命 令),然后将紧接着的程序代码或数据汇编到指定 的段中,直到再遇到另一条text、data或sect命 令为止。 >当汇编器遇到bss或usec命令时,并不结束当前 段的汇编,只是暂时从当前段脱离出来,并开始对 新的段(bss或usec进行汇编,结束后仍在离开 时的段。(见例4-2)
4.2.2 汇编器对段的建立 ➢ 当汇编器遇到.text或.data或.sect命令时,将停止 对当前段的汇编(相当于一条结束当前段汇编的命 令),然后将紧接着的程序代码或数据汇编到指定 的段中,直到再遇到另一条.text、.data或.sect命 令为止。 ➢ 当汇编器遇到.bss或.usect命令时,并不结束当前 段的汇编,只是暂时从当前段脱离出来,并开始对 新的段(.bss或.usect)进行汇编,结束后仍在离开 时的段。(见例4-2) 第4章 汇编语言程序设计
第4章汇编语言程序设计 4.22汇编器对段的建立 段程序计数器SPC 汇编器为每个段都安排了一个单独的程序计数 器称之为段程序计数器SPC。 SPc表示在程序代码或数据段内当前的地址。 开始时汇编器将每个SPC置0。当汇编器将程序代 码或数据加到段内时,增加相应的SPC值。若再 继续对某个段汇编,则相应的SPc就在先前的数 值上继续增加
段程序计数器SPC 汇编器为每个段都安排了一个单独的程序计数 器称之为段程序计数器SPC。 SPC表示在程序代码或数据段内当前的地址。 开始时汇编器将每个SPC置0。当汇编器将程序代 码或数据加到段内时,增加相应的SPC值。若再 继续对某个段汇编,则相应的SPC就在先前的数 值上继续增加。 第4章 汇编语言程序设计 4.2.2 汇编器对段的建立