题目:Power idea公司从1975成立一直到1995年的基本情况被定义到了datasg中,编程将datasg段中的数据写入到table段中,并计算21年中的人均收入(取整),结果保存到table段中
写在前面:因为对之前实验七的三个版本都不满意,在做了一些参考之后,有了这个版本
分析:刚开始时一看到那张表就吓了一下,不过冷静分析后发现,其实也不难。我这里用的是分模块处理,同时运用到了栈。以table的0~f空间为例说明。即:首先要准确定位datasg段取得年份,写入table段的前4个字节:[0]、[1]、[2]、[3]。空掉1个字节,即[4]这个单元空间空出来。其次再取得收入的数据也循环插入table段接下来的四个字节:[5]、[6]、[7]、[8]。再空出一个单元[9]。第三:取出雇员人数存放到table段的两个字节:[A]、[B]。再次空闲出一个单元[C]。第四:接下来的主要目的是拿收入数值除以雇员人数得出人均收入,这里很显然除数是16位的,所以取出[5]、[6]单元的数据给ax,把[7]、[8]单元的数据给dx(这里的目的就是设置被除数)。接着把[A]、[B]单元的值给bx(这里的目的是设置除数),运用除法得出人均收入。因为除法的商放在ax中,余数放在dx中。最后一步是把ax中的值也就是人均收入的数值存放在table段的两个字节:[D]、[E]处。
这样循环做21次,就达到了目的。
调试结果: