汇编语言(第三版)课程设计1

本文展示了一个使用汇编语言进行财务数据分析的例子,包括显示年份字符串、计算每年的人均收入,并将结果显示在屏幕上。涉及的数据包括公司历年总收入、雇佣员工数等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

课程设计1
ASSUME CS:CODE,DS:DATA,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年的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


STACK SEGMENT
    DB 128 DUP(0)
STACK ENDS

CODE SEGMENT
   START:MOV AX,STACK
         MOV SS,AX
 MOV SP,128
         MOV AX,DATA
         MOV DS,AX
 MOV AX,0B800H
 MOV ES,AX
 MOV DI,160*2+10*2
 MOV BP,0
 MOV SI,0
 MOV BX,0
 CALL CLS                   ;清屏
 MOV CX,21
S:  PUSH CX
     CALL SHOW_STR
 
 MOV AX,WORD PTR DS:[SI+84]
 MOV DX,WORD PTR DS:[SI+86]
 CALL DIVDW
 
 MOV CX,WORD PTR DS:[BX+168]
 CALL DIVBW
 
 
         DIV CX
 CALL DIVS
 
         ADD DI,160
         ADD SI,4
 ADD BX,2
 POP CX
         LOOP S  


         MOV AX,4C00H
 INT 21H
;---------------------------------------------------------------
CLS:     PUSH CX
         PUSH DI
 PUSH ES
 
         MOV DI,0
         MOV CX,4000
     S0: MOV WORD PTR ES:[DI],' '
     ADD DI,2
         LOOP S0
         
         POP ES
         POP DI
         POP CX  
 RET
;----------------------------------------------------------------  
SHOW_STR:PUSH CX
         PUSH AX
 PUSH ES
 PUSH DI
 PUSH SI
 
         MOV AH,4  
 MOV CX,4
S5:  MOV AL,DS:[SI]
 MOV ES:[DI],AX
 ADD DI,2
 INC SI
 LOOP S5
 
 POP SI
 POP DI
 POP ES
 POP AX
 POP CX
 RET
;---------------------------------------------------------------
DIVS:      PUSH AX
       PUSH CX
   PUSH DX
   PUSH BX
   PUSH BP
   PUSH DI
   PUSH ES
   
   MOV BX,10
S7:    MOV DX,0
   DIV BX
   ADD DX,30H
   PUSH DX
   INC BP
   MOV CX,AX
   JCXZ S8
   JMP S7
     S8:   MOV CX,BP
     S9:   POP DX
       MOV DH,4
           MOV ES:[DI+124],DX
   ADD DI,2
           LOOP S9
           
           POP ES
           POP DI
           POP BP
           POP BX
           POP DX
           POP CX
           POP AX    
           RET  
;----------------------------------------------------------------
    DIVBW: PUSH AX
       PUSH CX
   PUSH DX
   PUSH BX
   PUSH BP
   PUSH DI
   PUSH ES
   
       MOV AX,CX
   MOV BX,10
S3:    MOV DX,0
   DIV BX
   ADD DX,30H
   PUSH DX
   INC BP
   MOV CX,AX
   JCXZ S2
   JMP S3
     S2:   MOV CX,BP
     S4:   POP DX
       MOV DH,4
           MOV ES:[DI+84],DX
   ADD DI,2
           LOOP S4
           
           POP ES
           POP DI
           POP BP
           POP BX
           POP DX
           POP CX
           POP AX    
           RET   
;----------------------------------------------------------------
DIVDW:   PUSH AX
         PUSH BX
 PUSH DX
 PUSH CX
 PUSH DI
 PUSH BP
 PUSH ES
 
    END2:MOV BX,AX
 MOV AX,DX
 MOV DX,0
 MOV CX,10
 DIV CX
 PUSH AX
 MOV AX,BX
 DIV CX
 MOV BX,DX
 POP DX
 ADD BX,30H
 PUSH BX
 INC BP
 MOV CX,AX
 JCXZ END1
 JMP END2
END1:MOV CX,BP
     S1: POP BX
         MOV BH,4  
     MOV ES:[DI+40],BX
 ADD DI,2
 LOOP S1
 
 POP ES
 POP BP
 POP DI
 POP CX
 POP DX
 POP BX
 POP AX
 RET
;----------------------------------------------------------------  
CODE ENDS


END START  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值