1. 计算给出数据的人均收入,并且填到表中
assume cs:codesg,ds:data,es:table,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,24486,50065,97479,140417,197514 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 dw 8226,11542,14430,15257,17800 ;以上为21年公司员工人数 data ends table segment db 21 dup ('year summ ne ?? ') table ends ;将data段数据按年份写入table段中 stack segment db 16 dup (0) stack ends codesg segment start: mov ax,data mov ds,ax ;源数据区段地址 mov bx,0 mov si,84 mov di,168 mov ax,table mov es,ax ;目标区段地址 mov bp,0 mov ax,stack mov ss,ax ;其实并没有用到这个 mov sp,16 ;但是用到它了 mov cx,21 s: mov ax,[bx+0] mov es:[bp+0],ax mov ax,[bx+2] mov es:[bp+2],ax ;年份数字传递 mov byte ptr es:[bp+4],20h ;空格 mov ax,[si] mov es:[bp+5],ax mov ax,[si+2] mov es:[bp+7],ax ;收入数据 mov byte ptr es:[bp+9],20h ;空格 mov ax,[di] mov es:[bp+10],ax ;员工数据 mov byte ptr es:[bp+12],20h ;空格 mov ax,[si] mov dx,[si+2] ;设置被除数 div word ptr [di] mov es:[bp+13],ax ;保存商 mov byte ptr es:[bp+15],20h ;空格 add bx,4 add si,4 add di,2 add bp,16 ;下次循环条件重设 loop s mov ax,4c00H int 21h codesg ends end start