汇编“生活”(一)——王爽《汇编语言》实验7程序代码

 1 assume cs:code ;将数据格式化存放在制定内存中.大作业
 2 
 3 data segment
 4 db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
 5 db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
 6 db '1993','1994','1995'
 7 ;以上是表示21年的21个字符串
 8 
 9 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
10 dd 345980,590827,803530,1183000,841000,2759000,3753000,4649000,5937000
11 ;以上是表示21年公司总收入的21个dword型数据
12 
13 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
14 dw 11542,14430,15257,17800
15 ;以上是表示21年公司雇佣人数的21个word型数据
16 data    ends
17 
18 table    segment
19 db 21 dup ('year summ ne ?? ')
20 table    ends
21 
22 stack    segment
23 dw    0
24 stack    ends
25 
26 code    segment
27 starts:
28 mov ax,table
29 mov es,ax    ;将table段地址给了es
30 mov ax,data
31 mov ds,ax    ;将data数据段的地址给了ds
32 mov ax,stack
33 mov ss,ax    ;将用于存放cx临时的栈段地址给ss
34 mov sp,10H
35 
36 mov bx,0    ;bx和ds搭配
37 mov bp,0    ;bp和es搭配
38 mov di,0    ;di作为table段内偏移地址使用
39 ;格式化前两段(年份和收入)
40 mov cx,2
41 s1:
42 push cx    ;压栈    
43 mov cx,15H    ;设置循环次数21次
44 s2:
45 mov ax,ds:[bx]
46 mov es:[bp+di],ax
47 mov ax,ds:2[bx]
48 mov es:2[bp+di],ax
49 add bp,10H
50 add bx,4
51 loop s2
52 
53 add di,5    ;指向table段第二项内容
54 mov bp,0
55 pop cx
56 loop s1
57 
58 
59 ;格式化第三段(雇员数)代码
60 mov cx,15H
61 mov di,0aH
62 mov bp,0
63 s3:
64 mov ax,ds:[bx]
65 mov es:[bp+di],ax
66 add bp,10H
67 add bx,2
68 loop s3
69 
70 
71 ;格式化第四段,因为没有数据,所以不用格式化
72 
73 mov ax,4c00H
74 int 21H
75 
76 
77 code    ends
78 
79 end    starts

 

posted @ 2015-10-06 21:30  yang_zcybb  阅读(438)  评论(0编辑  收藏  举报