码迷,mamicode.com
首页 > 编程语言 > 详细

王爽《汇编语言》试验七

时间:2015-02-11 20:15:37      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

 1 assume cs:code,ds:data,es:table,ss:stack
 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年的字符串 4 * 21 = 84
 8 
 9     dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
10     dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
11     ;以上是表示21年公司总收入的dword型数据 4 * 21 = 84
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型数据 2 * 21 = 42
16 data ends
17 
18 table segment
19     db 21 dup (year summ ne ?? ) ; ‘year summ ne ?? ‘ is exact 16 bytes
20 table ends
21 
22 stack segment
23     dw 8 dup (0) ; To store the number of loops
24 code segment
25 start:
26      mov bx,0 ;作为表格的行指针
27      mov bp,0 ;作为年份与总收入的指针
28      mov di,0 ;作为人数的指针
29 
30      mov ax,data
31      mov ds,ax    ;关联ds与data
32      mov ax,table
33      mov es,ax    ;关联es与table
34 
35      mov ax,stack
36      mov ss,ax
37      mov sp,1000  ;设置栈
38 
39      mov cx,21    ;设置循环次数
40    s:push cx
41      mov cx,4
42      mov si,0
43 
44       s0:
45         mov al,[bx+si]
46         mov es:[bp+si],al
47         inc si
48         loop s0 
49         ;输入年份
50 
51      mov ax,[bx+84]
52      mov es:[bp+5],ax
53      mov ax,[bx+86]
54      mov es:[bp+7],ax
55      ;输入生产总值
56 
57      mov ax,[di+168]
58      mov es:[bp+10],ax
59      ;输入员工数
60 
61      mov ax,es:[bp+5]
62      mov dx,es:[bp+7]
63      div word ptr es:[bp+10]
64      mov es:[bp+13],ax
65      ;算出人均生产总值
66 
67      pop cx
68      add bx,4
69      add bp,16
70      add di,2
71      loop s
72 
73      mov ax,4c00H
74      int 21H
75 code ends
76 end start

 

王爽《汇编语言》试验七

标签:

原文地址:http://www.cnblogs.com/legend1213/p/4286713.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!