|
這個程序是將5位BCD數(shù)轉(zhuǎn)換成一個16位二進制數(shù),5位BCD數(shù)依次存放于R0、R1、R2、MSD在R0的最右端,將16進制數(shù)轉(zhuǎn)出示存器H-byte和L-byte 一般轉(zhuǎn)換方法是:轉(zhuǎn)入換數(shù)X=abcde(5位BCD數(shù)) X= abcde=10[10[10[10a+b]+c]+d]+e 采用此方式,以高次向低位依次進行二進制的處理調(diào)整。 定義 H-byte=0X10 L-byte=0X11 R0 =0X12 R1 =0X13 R2 =0X14 H-temp=0x15 L-temp=0X16 BCDTOB CLR H-byte and A ,@0X0FH mov L-byte A call Mpy10b ; 結(jié)果=10a+b swapaA R1 call Mpy10b ;結(jié)果=10[10a+b] mov A, R1 call Mpy10b;結(jié)果=10[10[10a+b]+c] swapA R2 call Mpy10b ;結(jié)果=10[10[10[10a+b]+c]+d] mov A, R2 and A,@0X0FH add L-byte, A JBC STATUS,C JZ H-byte;果=10[10[10[10a+b]+C]+d+e RET ;BCD 到BIN轉(zhuǎn)換結(jié)束 Mpy10b and A,@OXOFH add L-byte,A JBC STATUS,C JZ H-byte Mpy10a BC STATUS,C;單元及進行除2處理 RLCA L-byte MOV L-TEMP,A RLCA H-byte ;最低位調(diào)整, MOV H-temp,A ; BC STATUS,C 逐步進行除2處理 RLC L-byte
RLC H-byte BC STATDS,C 進行第三位二進制處理 RLC L-byte RLC H-byte BC STATUS,C ;進行第四位三進制處理 RLC L-byte RLC H-byte ;一直到第四位 MOV A,L-temp ADD A,L-byte JBC STATUS,C INC H-byte MOV A,H-temp ADD H-byte,A RET 主程序 main mov A, @0x60 mov R0, A mov A, @0x55 mov R1, A mov A, @0x35 mov R2, A call BCDTOB self goto self end |