📄 ws8_2.asm
字号:
ASSUME CS:CODE,DS:DATA,ES:TABLE
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'
DD 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
DD 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
DW 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
DW 11542,14430,45257,17800
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 AL,[BX]
MOV ES:[DI],AL
MOV AL,[BX+1]
MOV ES:[DI+1],AL
MOV AL,[BX+2]
MOV ES:[DI+2],AL
MOV AL,[BX+3]
MOV ES:[DI+3],AL ;以上8句的作用是存放年份
MOV AX,54H[BX] ;第一个'年收入'的段基址为54H
MOV DX,56H[BX]
MOV ES:5H[DI],AX
MOV ES:7H[DI],DX ;以上4句的作用是存放公司总收入
MOV AX,0A8H[SI] ;第一个'人数'的段基址为0A8H
MOV ES:0AH[DI],AX ;以上2句是存放公司的人数
MOV AX,54H[BX]
DIV WORD PTR DS:0A8H[SI]
MOV ES:0DH[DI],AX ;以上3句是存放人均收入
ADD BX,4
ADD SI,2
ADD DI,16 ;以上3句是为下一次循环时存放数据做准备
;3个寄存器递增的速度决定了所要存取的数据的位置的偏移地址
LOOP S ;跳到标号s处
MOV AX,4C00H
INT 21H
CODE ENDS
END START
;-u
;-d ds:0
;-d es:0
;-g5
;-d ds:0
;-ga
;-d es:0
;-g5c
;-d es:0
;-d
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -