刚刚完成的实验七
本帖最后由 lichun 于 2019-12-29 00:36 编辑第一次不看视频提示自己完成的程序
assume cs:codesg
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,15257,17800
data ends
stack segment
dw 0
stack ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
codesg segment
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov ax,table
mov es,ax
mov bx,0
mov si,0
mov di,0
mov sp,2
mov bp,0
mov cx,21
s0: push cx
mov ax,
mov es:,ax
mov ax,
mov es:,ax
mov dx,
mov es:,dx
div word ptr es:
mov es:,ax
mov cx,4
s: mov al,
mov es:,al
inc si
inc di
loop s
add bx,2
mov si,bx
add bp,16
mov di,0
pop cx
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
看明白了,先复制雇员人数到表格雇员人数存放地址处
然后复制总收入到除法运算相关的寄存器中
顺便将被总收入复制到表格收入的存放地址
使用除法指令,指定寻址的数据作为除数,指向进行除法运算。
结果商复制到表格处
其次年份字符串,单字节复制到表格处,循环四次
使用bx寄存器指向下一位收入、雇员人数地址
使用bx寄存器配合si寄存器,指向下一位年份字符串起始地址
使用bp寄存器指向表格下一行地址
di寄存器清零,重新指向年份字符串首位
循环21次
页:
[1]