这是《汇编语言(第2版)》(王爽著)中的一个实验。寻址方式在结构化数据访问中的应用
1 assume cs:codesg 2 data segment 3 db '1975','1976','1977','1978','1979','1980','1981','1982','1983' 4 db '1984','1985','1986','1987','1988','1989','1990','1991','1992' 5 db '1993','1994','1995' 6 ;以上是表示21年的21个字符串 7 8 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 9 dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 10 ;以上是表示21年公司总收入的21个dword型数据 11 12 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 13 dw 11542,14430,15257,17800 14 ;以上是表示21年公司雇员人数的21个word型数据 15 data ends 16 17 table segment 18 db 21 dup ('year summ ne ?? ') 19 table ends 20 21 codesg segment 22 start:mov ax,data ;初始化 23 mov ds,ax 24 mov si,0 ;雇员自增2 25 mov ax,table ;这里因为data已被占用 26 mov es,ax 27 mov di,0 ;索引每一行,目标偏移地址自增16 28 mov bx,0 ;年份自增4 29 mov cx,21 ;21次循环 30 s: mov al,[bx] 31 mov es:[di],al 32 mov al,[bx+1] 33 mov es:[di+1],al 34 mov al,[bx+2] 35 mov es:[di+2],al 36 mov al,[bx+3] 37 mov es:[di+3],al 38 ;存放年份 39 40 mov ax,54h[bx] 41 mov dx,56h[bx] 42 mov es:5h[di],ax 43 mov es:7h[di],dx 44 ;存放总收入 45 46 mov ax,0A8h[si] 47 mov es:0Ah[di],ax 48 ;存放雇员人数 49 50 mov ax,54h[bx] 51 mov dx,56h[bx] 52 div word ptr ds:0A8h[si] ;总收入除以雇员人数 53 mov es:0dh[di],ax ;平均收入存放指定位置 54 55 add bx,4 ;bx确定年份收入 56 add si,2 57 add di,16 58 loop s ;为一次循环时存放数据做准备 59 mov ax, 4c00h 60 int 21h 61 62 codesg ends 63 end start