89c2051 16Bit Addieren

Gast #38946
Lesenswert?
• ▲
▼
Hat jemand eine Ahnung wie ich in Assambler Sprache ein 16Bit register
mit einem 8 Bit Register Addieren kann? Hab es mit dem Dptr Register
Probiert, dieses ist 16 Bit groß. Aber es gibt kein Befehl zum Addieren
mit dem Register.

Versuche grad eine höhere Auflösung beim DS1621 zu erreichen.
Vielleicht hab das schonmal jemand gemacht und könne mir verraten wie
er die ganze Sache gelöst hab.
mfg
Gast #38947
Lesenswert?
• ▲
▼
mit dem DPTR wird das nichts.
Eine 16-Bit-Addition wird in 2 8-Bit-Additionen erledigt, jeweils die
low- und high-Bytes getrennt addieren, dabei einen evtl. Übertrag vom
low zum high-Byte beachten.
8051er-Syntax ist mir nicht mehr so geläufig, aber dass bekommst du
schon hin.
add low1, low2    //addition1 ohne carry (oder auch mit, wenn C null
ist)
addc high1,high2   //addition2 mit carry

wenn dein 2.Operand ist nur eine 8bit-Zahl ist, reicht als 2. Addition
ein ADDC A, #0 (nur das carry wird addiert)
Gast #38948
Lesenswert?
• ▲
▼
hier eine Keil C Kompatible Funktion
;Parameter R6/R7 Var16 (LSB In R7)
;          R5    Var8
;Result    R6/R7
;c Prototype:
;UINT16 Add8_16(UINT16 var1, UINT8 var2)
_Add8_16:
MOV  A,R7
ADD  A,R5
MOV  R7,A
JNC  exit
INC  R6
exit: RET

Anwendung in Assembler:

MOV   R6,#HIGH (1000h)
MOV   R7,#LOW  (1000h)
MOV   R5,#20h
LCALL _Add8_16 ;Result in R6R7 = 1020h
...

Thomas

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.