标签:
题目让我们按下图要求的格式:
直接上代码。
1 ;实验7 殉职方式在结构话数据访问中的应用 2 3 ;编程,将data段中的数据按题中给出图的格式写入到table段中,并计算21年中的人均收入(取整) 4 ;结果也按照题中图给出的格式保存在table段中。 5 ;程序如下 6 7 assume cs:codesg 8 9 data segment 10 db ‘1975‘,‘1976‘,‘1977‘,‘1978‘,‘1979‘,‘1980‘,‘1981‘,‘1982‘,‘1983‘ 11 db ‘1984‘,‘1985‘,‘1986‘,‘1987‘,‘1988‘,‘1989‘,‘1990‘,‘1991‘,‘1992‘ 12 db ‘1993‘,‘1994‘,‘1995‘ 13 ;以上是表示21年的21个字符串 14 15 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 16 dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 17 ;以上是表示21年公司总收入的21个dword型数据 18 19 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 20 dw 11542,14430,15257,17800 21 ;以上是表示21年公司雇员人数的21个word型数据 22 data ends 23 24 table segment 25 db 21 dup (‘year summ ne ?? ‘) 26 table ends 27 28 codesg segment 29 start: 30 mov ax,data 31 mov ds,ax 32 mov ax,table 33 mov es,ax 34 mov bx,0 35 mov si,0 36 mov cx,21 37 s0: ;第一次循环将年份从data段传到table段 38 mov ax,[si] 39 mov es:[bx],ax 40 mov ax,[si].2 41 mov es:[bx].2,ax 42 add bx,16 43 add si,4 44 loop s0 45 46 mov bx,0 47 mov si,0 48 mov cx,21 49 s1: ;第二次循环将收入从data段传到table段 50 mov ax,[si].84 51 mov es:[bx].5,ax 52 mov ax,[si].86 53 mov es:[bx].7,ax 54 add bx,16 55 add si,4 56 loop s1 57 58 mov bx,0 59 mov si,0 60 mov cx,21 61 s2: ;第三次循环将雇员人数从data段传到table段 62 mov ax,[si].168 63 mov es:[bx].10,ax 64 add bx,16 65 add si,2 66 loop s2 67 68 mov ax,4c00h 69 int 21h 70 codesg ends 71 72 end start 73 74 ;该代码用了三次循环,显然麻烦,但由于水平不足,其实也觉得嵌套循环也挺麻烦的 75 ;以后再改喽 76 ;不服咬我 : )
而程序中data段数据查看如下:
程序执行后,所得结果,即table段中数据查看如下:
mark一下
本人初学,水平有限,希望自己以后能够有能力改进这个代码。。。
over .0.
标签:
原文地址:http://www.cnblogs.com/jim-zwb/p/5518504.html