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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.