王爽汇编第8章(实验7)
2011-12-29 13:48
176 查看
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,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 dw 11542,14430,15257,17800 data ends
;前21个是年份 每个占4字节
;中间21个是总收入 每个占4字节
;最后21个是人数 每个占2字节
table segment db 21 dup('year summ ne ?? ') table ends
;21条记录
;将data中的数据复制到table中
;要求格式 用空格间隔(3个间隔+每条记录末尾空格) 每条记录占16字节
;年份 总收入 人数 人均收入
;4 4 2 2
代码如下:
code segment entry: mov ax,data mov ds,ax mov ax,table mov ss,ax mov bx,0 mov si,0 mov bp,0 mov cx,21 s: mov ax,[bx] ;年 mov [bp],ax mov ax,[bx+2] mov [bp+2],ax mov ax,[168+si] ;人数 mov [10+bp],ax mov ax,[84+bx] ;收入 mov [bp+5],ax mov dx,[86+bx] mov [bp+7],dx div word ptr[168+si];平均数 mov [13+bp],ax add bx,4 add si,2 add bp,16 loop s mov ax,4c00h int 21h code ends end entry
分析:
data中数据 年份起始偏移地址0,单个占4字节 收入起始偏移84,单个占4字节 人数起始偏移168,单个占2字节
第n条记录的年份偏移 4n 收入偏移 84+4n 人数偏移168+2n( 第一条记录n=0)
表示为 [bx ] [84+bx] [168+si ] (bx每次增加4 si每次增加2)
table中第n条记录偏移地址 16n,年份在该条记录中偏移0 收入偏移5 人数偏移10 人均偏移13
表示为 [bp] [ bp+5] [ bp+10] [ bp+13] (bp每次增加16)
如此 可轻易写出代码
相关文章推荐
- 王爽汇编第二版第8章实验7
- 王爽.汇编.第三版.实验16.答案
- 王爽汇编语言第二版学习笔记之实验13(2)
- 王爽 汇编语言 实验9
- 王爽汇编 实验14读取CMOS RAM时间信息
- 王爽 汇编 实验14
- 王爽 汇编 实验15:安装新的int9中断例程
- 王爽 汇编语言 实验七
- 王爽 汇编语言 实验十 2、数值显示
- 汇编语言(王爽 第三版)实验五
- 2.解决除法溢出问题-汇编语言(王爽)-实验10 编写子程序
- 王爽 汇编语言 第三版 实验12 编写0号中断的处理程序
- 汇编语言(王爽)-实验十三(二)中断例程对loop功能实现的简单变通
- 王爽 汇编语言第二版 实验9 根据材料编程 代码及分析
- 汇编语言 第三版 王爽 实验四
- 汇编语言 第三版 王爽 实验6 更改大写字母
- 汇编语言 第三版 王爽 实验9 根据材料编程
- 王爽《汇编语言》第8章 实验7 不使用栈的解法
- 汇编语言(王爽 第三版)实验七
- 王爽.汇编.第三版.实验七.答案