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

本文介绍了一个使用汇编语言进行数据格式化的程序实例。该程序将21年的年份、公司总收入及雇佣人数等数据格式化存储到指定内存区域。通过对年份、收入和雇员数的数据进行循环处理,实现了格式化输出。
 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

 

转载于:https://www.cnblogs.com/yang-zcybb/p/4857788.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值