实验七 寻址方式在结构化数据访问中的应用 答: 分析:
根据题目要求:要进行的操作只有两种:
第一:进行一个除法操作,用到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
【注:这里主要涉及两点:第一,寻址方式的灵活运用;第二,如何比较灵活的修改循环中的参数,自己要在实践中不断体会。】
附录:寻址方式总结