实验7 寻址方式在结构化数据访问中的应用

题目让我们按下图要求的格式:

直接上代码。

 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.

转载于:https://www.cnblogs.com/jim-zwb/p/5518504.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值