. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->数据处理的两个基本问题
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验七整理,调试通过  [待解决] 回复[ 1次 ]   点击[ 307次 ]  
zoudaokou2006
[帖 主]   [ 发表时间:2011-02-12 23:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2011-02-09 21:07
assume cs:codesg

YEAR_ARRRY      EQU         0H
SUMM_ARRAY      EQU         84
COUNT_ARRAY     EQU        168
M_YEAR          EQU         0H
M_SUMM          EQU         5H
M_COUNT         EQU         0AH
M_AVER          EQU         0DH

data segment
        ;表示21年年份,字符串
        db '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982', '1983'
        db '1984', '1985', '1986', '1987', '1988', '1989', '1990', '1991', '1992'        
        db '1993', '1994', '1995'
        
        ;21年总收入,dword
        dd 16, 22, 382, 1356, 2390, 8000, 16000, 24486, 50065, 97479, 140417, 197514
        dd 345980, 590827, 803530, 1183000, 1843000, 2759000, 3753000, 4649000, 5937000
        
        ;雇员人数 dword
        dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
        dw 11542, 14430, 15257, 17800
data ends

table segment
        db 21 dup ('year summ ne ?? ')
table ends        
        
codesg segment

start:
        mov ax, data
        mov ds, ax

        mov ax, table
        mov es, ax
        
        mov si, 0
        mov di, 0
        mov bx, 0
        mov cx, 21
calc_one:
        ;年份
        mov ax, YEAR_ARRRY[si]
        mov dx, YEAR_ARRRY[si+2]
        mov es:[bx].M_YEAR, ax                
        mov es:[bx].(M_YEAR+2), dx
        
        ;总收入
        mov ax, SUMM_ARRAY[si]                ;被除数低16位
        mov dx, SUMM_ARRAY[si+2]        ;被除数高16位
        mov es:[bx].M_SUMM, ax                
        mov es:[bx].(M_SUMM+2), dx
        
        ;人均收入        
        div word ptr COUNT_ARRAY[di]        ;除数
        mov es:[bx].M_AVER, ax                

        ;雇员人数
        mov ax, COUNT_ARRAY[di]                
        mov es:[bx].M_COUNT, ax        
        
        add si, 4
        add di, 2
        add bx, 10h
        loop calc_one

        mov ax, 4c00h
        int 21h

codesg ends
end        start
zaixuexi
[第1楼]   [ 回复时间:2011-02-15 19:53 ]   [引用]   [回复]   [ top ] 
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28
像高手写的代码,挺老练的,呵呵.
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved