课程设计一



答:
分析:
	这是到现在为止的一个比较大的程序,我们应该仔细的分析和讨论之,实际上涉及到的要解决的问题,前面的三个子程序已经完全可以解决拉。现在我们
	具体的分析一下:
	题目要求我们显示实验7中的数据,仔细分析,除了“年份”可以直接输出到显存中显示外,后面的相关数据都要用到,我们设计的第三个子程序,
即先把数据转换成字符,然后显示;此外也同样需要进行求人均收入的操作,而这在实验七中已经解决,所以,我们可以直接给出设计的流程拉:
	1)取得数据段的入口地址ds:si(这里我们先在数据段的开头开辟一段空间存放子程序dtoc需要转换过后的字符)
	2)初始化cx为21,之后可以初始化颜色属性
	3)先把“年份”数据移动到上面定义的一段专用空间,调用show_str显示之
	4)先把总收入数据转换成字符,之后存放到上面定义的一段专用空间中,然后调用show_str显示之
	5)对雇员数据进行与4)类似的操作
	6)先求出人均输入,之后进行与4)类似的操作
	7)参数修改与循环控制,cx减一,判断cx是否为零,如果为零,返回3)否则结束
实现:
	具体的细化流程请自己完成,下面给出源程序:
	
	程序见:kcsj1.asm
【注意:
1,其实这里的整体框架与实验七几乎是相同的,只是多了一些操作而已,请自己仔细分析之
2,请仔细分析加“***”的地方,看是否有更好的办法解决寄存器的冲突问题,这是一个相当棘手的问题,所以要非常的注意,就因为这个问题我在调试的过程
中出现了一些很郁闷的事情。这里是我经过调整后的源代码kcsj12.asm,经过的主要调整有:为了缓解寄存器dh的冲突,我用约定存储单元的方法解决;对于
si的冲突,我用di进行替代,从而也解决了冲突,当然这里也可以采取类似的办法,在以后的汇编语言程序设计中,千万要注意寄存器的冲突问题。
 
返回目录