汇编语言学习(王爽)实验7

  这个实验的意义极大,总合之前的全部知识,而且难度不大,很适合拿来啊巩固所学(我从开始写到现在居然写了5天,我这个拖延症……)

 

 

 

 

 

 

   其实不是想想的那么难,图中标明了只有年份,按字符存储,其他直接数据就好了,所以,我们只需要成功一次,控制好迭代寄存器,就可以轻松实现

 

下面是我的代码,仅供参考:

  

assume cs:code, ss:stack

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 个年份的字符串

    dd 16,22,382,1356,2390,8000,16000,24886,50065,97479,140417,197514           ;076C:0054
    dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
    ;   21 年公司的总收入

    dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226        ;076C:00A8
    dw 11542,14430,15257,17800
    ;   21 年公司雇员人数
data ends

table segment
    db 21 dup ('year summ ne ?? ')                                              ;076C:00E0
table ends  

stack segment
    dw 8 dup (0)
stack ends

code segment
start:          mov ax, stack
                mov ss, ax
                mov sp, 10H                 ;配置栈段           
               
                mov ax, data
                mov ds, ax                  ;配置数据源
                
                mov ax, table
                mov es, ax                  ;配置接受点

                mov bx, 0
                mov bp, 0
                mov si, 0
                mov cx, 15H                 ;公司个数

COPYDATA:       push ds:[bx+di]
                pop  es:[bp]
                push ds:[bx+di+2]
                pop  es:[bp+2]              ;拷贝 年份

                push ds:54H[bx+di]          
                pop es:5[bp]                
                push ds:54H[bx+di+2]          
                pop es:5[bp+2]               ;拷贝 收入

                push ds:0A8H[di]
                pop es:0AH[bp]               ;拷贝 


                mov dx, es:5[bp+2]
                mov ax, es:5[bp]
                div Word ptr ds:0A8H[di]
                mov es:0DH[bp], ax             ;人均收入
                
                add bp, 10H
                add di, 2
                add bx, 2H       
                loop COPYDATA
               
                mov ax, 4c00h
                int 21
code ends
end start

最终实现的结果的部分图片:

  

 

posted @ 2020-03-21 13:08  秦_殇  阅读(1601)  评论(2编辑  收藏  举报