例5-1,段伪指令的使用 教材中列出的是一个汇编语言程序经汇编 后生成的lst文件,每行包含4个区域(列): Field1:(源程序)源代码行号 Field2:段指针SPc(段程序计数器) Field3:目标代码(机器码) Field4:初始源代码(源程序) 29
例5-1,段伪指令的使用。 教材中列出的是一个汇编语言程序经汇编 后生成的.lst文件,每行包含4个区域(列): Field 1: (源程序)源代码行号 Field 2: 段指针SPC(段程序计数器) Field 3: 目标代码(机器码) Field 4: 初始源代码(源程序) 29
例5-1,段伪指令的使用。列表文件(.1st): 汇编设置: 髒考露 汇编语言源程序 SPC (空行) 2 米**************** 3 *汇编一个初始化表到.data段** 4 米*米米米米米米***米米米米米***米*米*米*米*米*****米 5 000000 data 6 000000 0011 coeff word 011h,022h,033h 7 000001 0022 米*米**米***米米*******米**米***********米 8 000002 0033 *在.bss段中为变量保留空间* 9 米******************************* 10 000000 bss buffer,10 11 *********** 12 *.bss结束后仍然在.data段中 米* 13 米********米***米**********米********米 14 000003 0123 prt word 0123h Project→Properties→CCS Build→Cc55o0 Compiler→Advanced Options 一→Assembler Options→Generate Assembly Listing Files(al)
1 (空行) 2 ********************************** 3 ** 汇编一个初始化表到.data段 ** 4 ********************************** 5 .data 6 coeff .word 011h,022h,033h 7 ********************************** 8 ** 在.bss段中为变量保留空间 ** 9 ********************************** 10 .bss buffer,10 11 ********************************** 12 ** .bss结束后仍然在.data 段中 ** 13 ********************************** 14 prt .word 0123h 30 例5-1, 段伪指令的使用。列表文件(.lst): Project→Properties→CCS Build→C5500 Compiler→ Advanced Options →Assembler Options→ Generate Assembly Listing Files(al) 汇编设置: 000000 000000 0011 000001 0022 000002 0033 源程序 的行号 段程序 计数器 目标 代码 汇编语言源程序 000000 000003 0123 SPC
源程 鷿 汇编语言 的行 源程序 15 SPC 米米******米米********米**********米***米 怡 米* 汇编代码到.text段 ** 米冰冰米***米冰**米米米米***米*家米****米******* 18 000000 text 19 000000 A01E add: MOV 0 OFh.AC ;DP直接寻址 20 000002 4210 aloop: SUB #1,AC0 21 000004 0450 BCC aloop,ACO>=#0 000006 FB 22 米米米米*米米米冰*米冰米米学**米米******冰****米**家 强 ** 汇编另一个初始化表到.data段 *****米******米********米********米*** 000004 data 26 000004 OOAA ivals word OAAh,OBBh, 0CCh 000005 00BB 000006 000C 27 ***米*********水*米**米水**********米* 28 ** 为更多的变量定义另一个段 ** 29 ******************************** 30 000000 var2 usect “newvars', 31 000001 inbuf .usect “newvars”,7 31
15 ********************************** 16 ** 汇编代码到.text段 ** 17 ********************************** 18 000000 .text 19 000000 A01E add: MOV 0Fh,AC0 ;DP直接寻址 20 000002 4210 aloop: SUB #1, AC0 21 000004 0450 BCC aloop,AC0>=#0 000006 FB 22 ********************************** 23 ** 汇编另一个初始化表到.data段 24 ********************************** 25 000004 .data 26 000004 00AA ivals .word 0AAh,0BBh,0CCh 000005 00BB 000006 00CC 27 ********************************** 28 ** 为更多的变量定义另一个段 ** 29 ********************************** 30 000000 var2 .usect “newvars” ,1 31 000001 inbuf .usect “newvars” ,7 源程序 的行号 段程序 计数器 目标 代码 汇编语言 源程序 31 SPC
例5-1,段伪指令的使用。列表文件(.1st): 32 **米米*****米****米*米****米*****米*****米**米*** 33 米米 汇编更多代码到.text段 米米 34 *********米*******米*米米****米*米**********米 35 000007 text 36 000007 A114 mpy: MOV OAh,AC1 37 000009 5272 mloop: MOV T3,HI(AC2) 38 00000b 1EOA MPYK #10,AC2,AC1 00000d 90 39 00000e 0471 BCC mloop,!overflow (AC1) 000010 F8 40 米*******米米****************学********** 41 为中断向量.vectors定义一个自定义段 42 **米********米**米**米***米*****米***米***米***米 43 000000 .sect “vectors” 44 000000 0011 word 011h,033h 45 000001 0033 霧鑫 源程 段 汇编语言 源程序 32
32 **************************************** 33 ** 汇编更多代码到.text段 ** 34 **************************************** 35 000007 .text 36 000007 A114 mpy: MOV 0Ah, AC1 37 000009 5272 mloop: MOV T3, HI(AC2) 38 00000b 1E0A MPYK #10, AC2, AC1 00000d 90 39 00000e 0471 BCC mloop,!overflow(AC1) 000010 F8 40 **************************************** 41 为中断向量.vectors定义一个自定义段 42 **************************************** 43 000000 .sect “vectors” 44 000000 0011 .word 011h,033h 45 000001 0033 源程序 的行号 段程序 计数器 目标 代码 汇编语言 源程序 例5-1, 段伪指令的使用。列表文件(.lst): 32
例5-1经汇编后,共建立了5个段: 行号SPC民码 目标 行号目标代码段名 2 米***米*米***米****米米*米***米*****米** text 3 *汇编一个初始化表到.data段** 4 *********米***米***********米**** 5 0000 data 6 0000 0011 coeff word 011h,022h,033h 6 0001 0022 6 0002 0033 7 米*****米******* 666 data 8 *米 在.bss段中为变量保留空间 米* 4 耀 9 100000 bss buffer,10 11 **米**米*********************米** vectors 12 米* 仍然在.data段中 米* 13 米***********米***米****米******** 10 .bss 140003 0123 prt .word 0123h newvars 3
2 ******************************* 3 ** 汇编一个初始化表到.data段 ** 4 ******************************* 5 0000 .data 6 0000 0011 coeff .word 011h,022h,033h 0001 0022 0002 0033 7 ******************************* 8 ** 在.bss段中为变量保留空间 ** 9 ******************************* 10 0000 .bss buffer,10 11 ******************************* 12 ** 仍然在.data 段中 ** 13 ******************************* 14 0003 0123 prt .word 0123h 行号 目标代码 段名 100f f010 0001 f842 0001 110a f166 000a F868 0006 0011 0022 0033 0123 00aa 00bb 00cc 0011 0033 没有数据 保留8个字 5 0000 .data 6 0000 0011 coeff .word 011h,022h,033h 10 0000 .bss buffer,10 14 0003 0123 prt .word 0123h .data 6 0011 6 0022 6 0033 10 没有数据 .bss 保留10个字 14 0123 .text vectors newvars 6 0001 0022 6 0002 0033 行号 目标 SPC代码 例5-1 经汇编后,共建立了5个段: 33