程序如下:<br />DIV_DOUBLE:<br /> LDP #DP_B01<br /> CLRC SXM<br /> LACL CHUSHU ;CHUSHU=除数<br /> SUB #0<br /> BCND ERROR_RESULT,EQ<br /> LDP #DP_B01<br /> LACC GAO,16 ;GAO =被除数的高十六位<br /> ADDS DI ;DI =被除数的低十六位<br /> SACH GAP<br /> SACL DI<br /> <br /> LACC CHUSHU,16 <br /> SACH BUFFER ;临时寄存器 <br /> LACL GAO<br /> RPT #15<br /> SUBC BUFFER<br /> SACL GAO<br /> <br /> XOR GAO<br /> OR DI<br /> <br /> RPT #15<br /> SUBC BUFFER<br /> SACH BUFFER<br /> SACL SHANG ;SHANG = 商<br /> B DIV_END<br />ERROR_RESULT:<br /> LDP #DP_B01<br /> SPLK #0,SHANG<br />DIV_END:<br /> NOP<br /> RET<br />这段小程序貌似实现两数相除的功能,但是我看不懂它的编程原理,请大侠指教.<br /> |
|