Untitled
unknown
plain_text
2 years ago
931 B
6
Indexable
#include"xc.inc" GLOBAL _multi_signed PSECT mytest, local, class=CODE,reloc=2 _multi_signed: init: MOVFF 0x01, 0x03 MOVFF WREG, 0x01 ;use 0x10 zero equal it is pos BTFSS 0x01, 7 GOTO next GOTO makeApos makeApos: COMF 0x01 INCF 0x01 INCF 0x10 next: BTFSS 0x03,7 ; skip if set(skip if negative) GOTO next2 GOTO makeBpos makeBpos: COMF 0x03 INCF 0x03 DECF 0x10 next2: INCF 0x03 ;use 0x20, 0x21 as ans MOVFF 0x01,0x11 add: DECFSZ 0x03 GOTO adding GOTO ending adding: MOVFF 0x01, WREG ADDWFC 0x21 MOVFF 0x00, WREG ADDWFC 0x20 GOTO add ending: TSTFSZ 0x10 ; skip if zero GOTO makeNeg GOTO makePos makeNeg: COMF 0x21 MOVLW 0x01 ADDWFC 0x21 COMF 0x20 MOVLW 0x00 ADDWFC 0x20 makePos: MOVFF 0x20, 0x02 MOVFF 0x21, 0x01 RETURN
Editor is loading...