Hallo

Ik wil een getal van 2 bytes groot gaan aftrekken van een ander getal dat ook 2 bytes groot is.

Eerst laad ik mijn variabelen met bepaalde waarden.
Als ik dit simuleer met MPLAB zie ik dat de waarden wel degelijk in het geheugen staan, maar als ik ze dan terug wil ophalen met 'MOVLW Ref1' en 'MOVLW Ref2' zie ik dat de waarde 0 in het WREG wordt geladen.
Hierdoor klopt de uitkomst ook niet.
Als ik bv. 'MOVLW 0X96' en 'MOVLW 0X12'typ dan klopt de uitkomst wel.

Weet iemand wat ik verkeerd doe?
Hieronder staat mijn code.

Dank bij voorbaat.

ORG		0X00			
#include P18F4523.INC


    CBLOCK
    Ref1		;Ref2:Ref1
    Ref2
    ADC1		;ADC2:ADC1
    ADC2
    ENDC

ini MOVLW 	b'10010110'
    MOVWF 	Ref1
    MOVLW 	b'00010010' 
    MOVWF 	Ref2
    MOVLW 	b'01100010'
    MOVWF 	ADC1
    MOVLW 	b'00100111'
    MOVWF 	ADC2

;Verschil maken van ADC2:ADC1 - Ref2:Ref1 en op PORTB en D zetten
    MOVLW	Ref1				
    SUBWF	ADC1, F						
    MOVLW	Ref2						
    SUBWFB	ADC2, F

    MOVFF 	ADC1, PORTB				
    MOVFF 	ADC2, PORTD					
;Uitkomst = zou '0001010011001100' moeten zijn
	
    END

REF2 is een variabele.
Met MOVLW haal je de locatie van de variabele op.
Dat wil je niet, je wil de waarde van de variabele weten.
Gebruik daartoe de MOVF REF2,w instructie.