例5-1,段伪指令的使用。列表文件(1st): 32 冰冰冰水冰冰冰体*冰冰冰 33 **汇编更多代码到text段* 34 冰冰冰水冰冰冰体*水冰冰 35000007 text 36000074114mpy:Mo0Ah,AG1 37 000009 5272 loop: MOV T3, HI (AC2) 3800000b1E0A MPYK #10. AC1. AC1 00000d90 3900000e0471 BCC loop, !over folow(AC1) 000010F8 冰冰冰水冰冰冰体*水冰冰冰 41 为中断向量 vectors定义一个自定义段 42 *冰冰冰**冰冰***冰 43000000 sect vectors 440000000011 wor d 011h,033h 450000010033 潑糖糖
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, AC1, AC1 00000d 90 39 00000e 0471 BCC mloop,!overfolow(AC1) 000010 F8 40 **************************************** 41 为中断向量.vectors定义一个自定义段 42 **************************************** 43 000000 .sect “vectors” 44 000000 0011 .word 011h,033h 45 000001 0033 源程序 的行号 段程序 计数器 目标 代码 汇编语言 源程序 例5-1, 段伪指令的使用。列表文件(.lst): 28
例5-1经汇编后,共建立了5个段: 行号sPc标 行号目标代码段名 你你 text 234 *汇编一个初始化表到data段** *** 50000 data 600000011cff.word011h,022h,033h 600010022 600020033 6 data **在bss段中为变量保留空间**14 ** 100000 bss buffer, 10 **** vectors 12 仍然在.data段中 * 13 **料冰料 10有数」.bss 1400030123prt.Word0123h newars
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个段: 29
程序 R鹰 例5-1经汇编后,共建立了5个段: 汇編语言源程序 15 种种冰 *汇编代码到tex段*行号目标代码段名 19 text 1800000 text 045 19 000000 A01E add: Mov OFh. ACO 20000024210 aloop:SUB#1,A 2100004045 CC aloop, ACO>O 00006RB 22 23 汇编另一个初始化表到data段6mm 24 0022 data 003 2500004 dat ca 0123 26 000004 00AA ivals word OAAh, OBBh, 0CCh 2600aa 000005008 26 26L9 00000600 702 *为更多的变量定义另一个段林 *中林 var2.uect“ newars”,1 10磷]·bss 3000000 31000001 buf. sect“ newars”,7 30保留个字 newvars 31保留7个字
15 ********************************** 16 ** 汇编代码到.text段 ** 17 ********************************** 18 000000 .text 19 000000 A01E add: MOV 0Fh,AC0 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 源程序 的行号 段程序 计数器 目标 代码 汇编语言源程序 30 行号 目标代码 段名 100f f010 0001 f842 0001’ 110a f166 000a F868 0006‘ 6 6 6 14 0011 0022 0033 0123 00aa 00bb 00cc .data 0011 0033 10 没有数据 保留10个字 .bss 没有数据 保留10个字 .text 19 A01E 20 4210 21 0450 21 fB 26 00aa 26 00bb 26 00cc 30 保留1个字 newvars 31 保留7个字 .data 例5-1 经汇编后,共建立了5个段:
例5-1经汇编后,共建立了5个段: 234 神材钟行号目标代码段名 汇编更多代码到text段*19A0E.text 20 fB 35000007 text 36000007 A114 mpy: MOV OAh, AC1 126788 37000572mlop:MT3,Hc2 38000001E0A MPYK #10. AC1. AC1 0000d90 3366 0022| data 0011 39000000471 BCC loop, !overflow(AC1) 0033 40123 000010F8 600aa 260bb *料棘棘棘260c 为中断向量. vectors定义段 vectors 42 43000000 sect vectors 10没有数据 保留10个字 bss 440000000011 ord 011h, 033h 450000010083 30没有 31保留 newvars 31
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, AC1, AC1 00000d 90 39 00000e 0471 BCC mloop,!overfolow(AC1) 000010 F8 40 ************************************* 41 为中断向量.vectors定义段 42 ************************************* 43 000000 .sect “vectors” 44 000000 0011 .word 011h, 033h 45 000001 0033 例5-1 经汇编后,共建立了5个段: 31 行号 目标代码 段名 19 20 21 21 A01E 4210 0450 fB 110a f166 000a F868 0006 .text 6 6 6 14 26 26 26 0011 0022 0033 0123 00aa 00bb 00cc .data 0044 0088 10 没有数据 保留10个字 .bss 30 31 没有数据 保留8个字 newvars .text 36 A114 37 5272 38 1E0A 38 90 39 0471 vectors 43 0011 43 0033 39 F8
行号目标代码段 这个例子创建了5个段: 821 text 0450 teot段:包含17字节目标代码;3 38 data段:包含7字的目标代码 471 F8 vectors段:sec指令创建的自定 0011 data 003 义段包含2字初始化数据 noaa 00 bss段:在存储器占用10个字;26 Occ newa段:usec指令创建的83 vectors 自定义段在存储器中占8个字。10无数据s 图53例51产生的目标代码38数个字 newvars 32
这个例子创建了5个段: A01E 4210 0450 FB A114 5272 1E0A 90 0471 F8 目标代码 0011 0022 0033 0123 00aa 00bb 00cc 0011 0033 无数据— 保留10个字 无数据— 保留8个字 行号 19 20 21 21 36 37 38 38 39 39 6 6 6 14 26 26 26 44 45 10 30 31 段 .text .data vectors .bss newvars 图5-3 例5-1产生的目标代码 32 .text段:包含17字节目标代码; .data段:包含7字的目标代码; vectors段:.sect指令创建的自定 义段,包含2字初始化数据; .bss段:在存储器占用10个字; newvars段:.usect指令创建的 自定义段,在存储器中占8个字