Geht das kürzer/schneller? Assembler, PIC16F1512

OP #7372247
Lesenswert?

PIC16F1512, Assembler, MPLAB Kann man das folgende Programmstück kürzer/schneller machen? Das Ziel ist: w = gnn + 32 - nnn, ohne nnn zu ändern.

1
    movfw   gnn
2
    addlw  d'32'      ; w= gnn+32
3
    movwf  hilfe      ; hilfe = gnn+d'32'
4
    movfw  nnn        ; w = nnn
5
    subwf  hilfe,w    ; w = hilfe - w: Ergebnis w = gnn+32-nnn

Für Ideen wäre ich dankbar!

#7372257
Lesenswert?

Könntest das Ganze über direkte Adressierung machen:

1
 
2
movlw   gnn         ; W = Adresse von gnn
3
addlw   d'32'       ; W = Adresse von gnn + 32
4
movwf   fsr0h       ; FSR0H = oberes Byte der Adresse
5
movf    nnn,f       ; W = Inhalt von nnn
6
subwf   indf0,w     ; W = Inhalt von (gnn + 32) - Inhalt von nnn

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren