题目:编程,将data
段中的数据按如下格式写入table
段中,并计算21年中的人均收入(取整),结果也按照下面的格式保存在table
段中。
提示:可将data
段中的数据看成是多个数组,而将table
中的数据看成是一个结构型数据的数组,每个结构型数据中包含多个数据项。可用bx
定位每个结构型数据,用idata
定位数据项,用si
定位数组项中的每一个元素,对于table
中的数据的访问可采用[bx].idata
和[bx].idata[si]
的寻址方式。
思路:整个过程通过两个循环来完成。第一个循环是将data
中的year
数据、summ
数据以及ne
数据拷贝到table
中。第二个循环是计算table
中的人均收入
。在第一个循环中嵌套一个小循环,该小循环的次数为4,作用是将data
中的四字节数据拷贝至table
,除了这个循环之外,我们还需要把data
中的ne
数据拷贝至table
。
在第一个循环的过程,较为复杂的是对各个数据项进行定位。我们用di
来定位data
中year
和summ
的偏移,用bx
来定位ne
的偏移,用si
来定位table
中各个结构体的偏移。
assume cs:codesg,ds:datasg,es:tablesg,ss:stacksg
datasg segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983',