匯編語言學習(王爽)實驗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

最終實現的結果的部分圖片:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM