课程设计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
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