例5-1段伪指令的使用-一源程序(单独汇总) var2,uect“ newars”,1建 inewvarst命名段保留个单元 inbuf . usect " newvars”,7: newark股保留7个单元 text 初始化文本段 mpy: MOV0Ah,AC1;字指令《省略@,DP直接寻址) m0:MOVT3,HAC2)2字节掄令 MPYK#1,AC1,AC1#3节 BCC loop, overflow(ACB字节拎令 sect“ vectors 建立 vectors命名段 word01lh,03h:2组数据放入 vectors命名段
var2 .usect “newvars”, 1 inbuf .usect “newvars”, 7 .text mpy: MOV 0Ah, AC1 mloop: MOV T3, HI(AC2) MPYK #10, AC1, AC1 BCC mloop, !overfolow(AC1) .sect “vectors” .word 011h, 033h 例5-1 段伪指令的使用---源程序(单独汇总) ;建newvars命名段,保留1个单元 ;在newvars段保留7个单元 ;初始化文本段 ;1字指令(省略@,DP直接寻址) ;2字节指令 ;3字节指令 ;3字节指令 ;建立vectors命名段 ;2组数据放入vectors命名段 23
例51段伪指令的使用段总结 汇编语言源程序经过汇编后,共建立了5个段: >text段—文本段,段内有10个字可执行的程序代码 >data段——已初始化的数据段,段内有7个字的数据 > vectors段—用sect命令生成的命名段段内有2个字 的初始化数据 >bss段—未初始化的数据段,在存储器中为变量保留 10个存储单元 newars段—用usec命令建立的未初始化的命名段, 为变量保留8个存储单元
汇编语言源程序经过汇编后,共建立了5个段: ➢.text段——文本段,段内有10个字可执行的程序代码 ➢.data段——已初始化的数据段,段内有7个字的数据 ➢vectors段——用.sect命令生成的命名段,段内有2个字 的初始化数据 ➢.bss段——未初始化的数据段,在存储器中为变量保留 10个存储单元 ➢newvars段——用.usect命令建立的未初始化的命名段, 为变量保留8个存储单元 24 例5-1 段伪指令的使用--- 段总结
例5-1,段伪指令的使用。 教材中列出的是一个汇编语言程序经汇编 后生成的st文件,每行包含4个区域: Field:源代码(源程序)行号 Field2:段指针SPC(段程序计数器) Field3:目标代码(机器码) Field4:初始源代码(源程序)
例5-1,段伪指令的使用。 教材中列出的是一个汇编语言程序经汇编 后生成的.lst文件,每行包含4个区域: Field 1: 源代码 (源程序)行号 Field 2: 段指针SPC(段程序计数器) Field 3: 目标代码(机器码) Field 4: 初始源代码(源程序) 25
例5-1,段伪指令的使用。列表文件(1st):汇编设置 程属就 的 汇编语言源程序 (空行) 冰冰冰冰*冰*冰冰 234 **汇编一个初始化表到dat段* *冰冰*冰冰*料 5000000 data 600000011 coeff.word011h,022h,033h 7000010022*************** 80020*在bss段中为变量保留空间* 9 冰冰冰冰冰冰*米体冰体冰 10000000 bss buffer, 10 *冰***冰** 12 **bss结束后仍然在data段中* 13 *冰******冰*水*** 14000030123prt word 0123h ProjectProperties CCS BuildC5500 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 26 例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
15 *冰冰水冰冰体冰水冰冰 **汇编代码到text段* 冰冰水冰水冰冰体冰冰 18000000 text 1900001Eadd:MoV0Fh,A00:DP直搜寻址 200000024210 aloop:SUB#1,AG0 210000040450 BCc aloop, ACo>=#O 000006FB 22 23 **汇编另一个初始化表到data段 24 25000004 data 26 000004 00AA ivaIs. word OAAh, 0BBh, oCCh 00000500B8 00000600c0 27 *冰料 28 *为更多的变量定义另一个段* 29 ** 30000000 var 2 sect“ dewars 31000001 inbuf sect“ newvars”,7 27
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 源程序 的行号 段程序 计数器 目标 代码 汇编语言 源程序 27