. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->数据处理的两个基本问题
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验七,琢磨了我好久!  [待解决] 回复[ 1次 ]   点击[ 331次 ]  
huameng
[帖 主]   [ 发表时间:2011-07-11 13:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-12-04 14:44
assume cs:code

data segment
        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年的21个字符串
        
        dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
        dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
        ;以上是表示21年公司总收入的21个dword型数据
        
        dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
        dw 11542,14430,15257,17800
        ;以上是表示21年公司雇员人数的21个word型数据
data ends

table segment
        db 21 dup('year summ ne ?? ')
        dw 0,0,0,0,0,0,0,0
table ends

code segment
start:        mov ax,data
                mov ds,ax
                mov ax,table
                mov ss,ax
                mov sp,0160h                
                
                mov bp,0
                mov bx,0
                mov di,0
                mov cx,21

s1:                push cx
                mov cx,4
                mov si,0                                
s0:                mov al,[bx+si]
                mov [bp].0h[si],al
                inc si
                loop s0
                pop cx
                
                                
                mov ax,54h[bx]
                mov dx,56h[bx]
                mov [bp].05h,ax
                mov [bp].07h,dx

                mov ax,0a8h[di]
                mov [bp].0ah,ax

                mov ax,[bp].05h
                mov dx,[bp].07h
                div word ptr [bp].0ah
                mov [bp].0dh,ax                
                
                add bx,4
                add di,2
                add bp,10h
                loop s1

                mov ax,4c00h
                int 21h
                
code ends

end start
ganlian_6666
[第1楼]   [ 回复时间:2011-09-27 19:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-05-26 14:05
我是这样写的
assume cs:code

data segment

        db '1975', '1976', '1977', '1978', '1979', '1980', '1981'
        db '1982', '1983', '1984', '1985', '1986', '1987', '1988'
        db '1989', '1990', '1991', '1992', '1993', '1994', '1995'
        ;以上是表示公司21年的21个字符串

        dd 16, 22, 382, 1356, 2390, 8000, 16000, 24486
        dd 50065, 97479, 140417, 197514, 345980, 590827, 803530
        dd 1183000, 1843000, 2759000, 3753000, 4649000, 5937000
        ;以上是表示公司21年来每年的总收入
        
        dw 3, 7, 9, 13, 28, 38, 130, 220, 476, 778 
        dw 1001,1442, 2258, 2793, 4037, 5635, 8226
        dw 11542, 14430, 15257, 17800
        ;以上是表示公司21年来每年雇员人数

data ends

table segment

        db 21 dup ('year summ ne ?? ')

table ends

code segment

start:
                mov ax, data
                mov ds, ax
                
                mov ax, table
                mov es, ax
                
                mov bx, 0
                mov si, 0
                mov di, 0
                mov cx, 21
s:
                mov ax, [bx]
                mov es:[di], ax         
                mov ax, 2[bx]                 ;最后将(bx) = (bx)+4
                mov es:2[di], ax              ;将(di) = (di)+10h
                
                mov ax, 84[bx]
                mov es:5[di], ax
                mov ax, 86[bx]
                mov es:7[di], ax
                
                mov ax, 168[si]               ;注意这里不能再用bx寄存器了
                mov es:10[di], ax
                
                mov ax, es:5[di]
                mov dx, es:7[di]
                div word ptr es:0ah[di]
                mov es:0dh[di], ax
                
                add bx, 4
                add si, 2
                add di, 10h
                
                loop s
                
                mov ax, 4c00h
                int 21h
                
code ends

end start
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved