乘法实际上是将被乘数相加乘数次,例如A7h*1Ch,就是将28个A7h进行累加。首先将3个数表示成16位数,数据的存放地址如下:
先看下A7h*1的操作指令序列:
如果再0012h放置一条jump指令:
当第一次跳转执行时,相当于A7h*2;关键是这个跳转不会停止,而实际只需要跳转27次,因此需要一种条件跳转指令,条件跳转指令中有个称为零锁存器的构件,作用是当加法器的输出为0时,零标志位才为1。
因此扩充出两个跳转指令:非零跳转(33h)和零跳转(31h)。
现将0012h后指令补上:
首先将1Ch载入累加器然后与-1相减,当值为0的时候就不会跳转到0000h地址处了,这就是非零跳转指令的作用,相当于循环了28次。
通过该方法可以不断的完善指令,并且实现除法、开方、对数、三角函数运算等。
文章来源: ,作者:FAT_mt,版权归原作者所有,如需转载,请联系作者。
原文链接:/u/1268334/blog/3162079