实验七   寻址方式在结构化数据访问中的应用


答:

分析:
	根据题目要求:要进行的操作只有两种:
	第一:进行一个除法操作,用到div指令,书中156页有详细的介绍。
	第二:对数据进行重排,即要求把按项目格式排列的数据转换成按表格格式排列。实际上只要进行一次循环操作即可,循环体内进行表格中一行数据的
操作。通过循环21次实现。具体流程如下:
	
	1,初始化操作:
	1)取得data段和table的段的起始地址,分别用ds:si和es:di指向
	2)初始化cx的值为21,也就是循环次数为21
	3)引入bx,控制si的增量保持为4(当然也可以控制si的增量保持为2)。原因:雇员和人均收入记录中的每个数据项长度是2,而其它每个数据项的
长度均为4,为了能在一个循环中进行操作,必须使得他们的增量保持一致
	4)入口地址:标号next:
	
	2,循环体
	1)移动年份数据
	2)移动总收入数据
	3)sub si,bx
	4)移动雇员数据
	5)进行除法操作求出人均收入,并移动人均收入
	
	3,参数修改
	1)si增加4,用si指向每个数据项
	2)di增加16,用di指向每行
	3)bx增加2,与sub si,bx配合控制雇员和人均收入两个数据在data段中的位置
 
	4,循环控制
	loop next
 
	5,程序返回
	mov ah,4ch
	int 21h
实现:
	在具体编辑源代码的时候,还要对上述流程进行细化!请自己进行相关操作。
     	程序见:7.asm
 

【注:这里主要涉及两点:第一,寻址方式的灵活运用;第二,如何比较灵活的修改循环中的参数,自己要在实践中不断体会。】

附录:寻址方式总结
返回目录