microcontroller lab
題目
連結可能失效!!!
#include <xc.h>
extern unsigned int devide(unsigned int a, unsigned int b);
void main(void){
volatile unsigned int res = devide(255, 2);
volatile unsigned char quotient = (unsigned char) (res>>8);
volatile unsigned char remainder = (unsigned char) (res);
while(1);
return;
}
#include "xc.inc"
GLOBAL _devide
PSECT mytext, local, class=CODE, reloc=2
init:
subff macro va,vb
movff vb, WREG
subwf va, W
endm
_devide:
movlw 0xFF
movwf 0x09, F
movff 0x01, LATA
movff 0x03, LATB
moved:
incf 0x0A
rlcf LATB
bnc moved
rrcf LATB
start:
subff LATA, LATB
btfss WREG,7
rcall addcarry
rlcf LATC
rcall clearcarry
rrcf LATB
decf 0x0A
bz finish
goto start
addcarry:
movwf LATA
rcall setcarry
return
setcarry:
movlw 0xFF
movwf 0x09
rlcf 0x09
return
clearcarry:
movlw 0x00
movwf 0x09
rlcf 0x09
return
finish:
movff LATC, 0x02
movff LATA, 0x01
movff LATC, 0x03
movff LATA, 0x04
return
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up