暫存器

main.s
list p=12f1822, r=hex
#include <p12f1822.inc>
__config _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _MCLRE_OFF
__config _CONFIG2, _LVP_OFF
#define LED 0x00
org 0x0000
goto start
org 0x0100
start:
banksel TRISA
bcf TRISA, LED
banksel LATA
movlw 0xff
movwf LATA
test_write:
banksel EEADRL
movlw 0x00
movwf EEADRL
movlw 0xaa
movwf EEDATL
call eeprom_write
banksel EEADRL
movlw 0x00
movwf EEADRL
call eeprom_read
banksel LATA
xorlw 0xaa
btfsc STATUS, Z
bcf LATA, LED
btfss STATUS, Z
bsf LATA, LED
idle:
goto idle
eeprom_write:
banksel EECON1
bcf EECON1, CFGS
bcf EECON1, EEPGD
bsf EECON1, WREN
bcf INTCON, GIE
movlw 0x55
movwf EECON2
movlw 0xaa
movwf EECON2
bsf EECON1, WR
bsf INTCON, GIE
bcf EECON1, WREN
btfsc EECON1, WR
goto $-2
return
eeprom_read:
banksel EECON1
bcf EECON1, CFGS
bcf EECON1, EEPGD
bsf EECON1, RD
movf EEDATL, w
return
end
編譯
$ gpasm main.s
完成