4.总原理图
3软件设计特点(主要任务):
首先设计程序用到的代码段,数据段,堆栈段。根据题目要求,我设计10位内存存储运算结果,减小了计算溢出的可能性。为程序设计初始化主程序,保证程序运行时避免出错。同时在每个子程序操作时将一些重要寄存器ax,dx等压入堆栈,防止不必要的错误。对于加减法我通过进位或借位标志进行控制。对于乘法,我先将内存的数据转换成16进制(乘0ah),并且记录乘数的大小,用于被乘数的累加运算。我之所以没在乘法中使用16进制的乘法指令是为了防止有一个数超过65536的情况发生,减小错误的几率,并且为我的程序增加了适用范围以及容错性。对于除法,直接循环利用被除数减去除数即可,利用借位标志退出机制。
在完成加减乘除基本功能的程序后,我又增添了后续的小数功能,将小数与这4个子程序巧妙的联合起来,其中除了除法的功能弱一点,其他都相对完善。同时我也添加了连续运算的功能,虽然并不能分清优先级别,但是对于简单计算机的性能已有很大的改善。附图如下: