微算機lab4

tags: microcontroller lab

題目
連結可能失效!!!

LIST p=18f4520
#include<p18f4520.inc>
    CONFIG OSC = INTIO67
    CONFIG WDT = off
    org 0x00
    
initial:
    movlf macro va,vb
    lfsr FSR0,vb
    movlw va
    movwf INDF0
    endm
    
    addfff macro va,vb,vc
    lfsr FSR0, va
    movff INDF0, WREG
    lfsr FSR0, vb
    addwf INDF0, 0
    lfsr FSR0, vc
    movwf INDF0
    endm
    
    movlf 0x00, 0x10
    movlf 0x01, 0x11
    
start:
    rcall Fibs
    rcall finish
    
Fibs:
    addfff 0x10, 0x11, 0x12
    lfsr FSR0, 0x11
    lfsr FSR1, 0x12
    movff INDF0, 0x10
    movff INDF1, 0x11
    movlw 0x14
    btfss INDF1, 3
    movwf PCL
    return
    
finish:
end
#include <xc.h>

extern unsigned int add(unsigned int a, unsigned int b);

void main(void){
    unsigned int result = add(12, 10);
    while(1);
    return;
}

#include "xc.inc"

GLOBAL _add
    
PSECT mytext, local, class=CODE, reloc=2
 
_add:
    movff 0x001, LATD
    
    movff LATD, WREG
    addwf 0x003, W
    
    movwf 0x001, F
	
	return