www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8Bit + 16Bit addition


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen..
Jetzt muss ich mal ganz dumm fragen:
Wie ist eigentlich der richtige ablauf bei einer addition von einer
8bit mit einer 16bit zahl???

in etwa so:

.equ bsp = 10000

ldi r16,low(bsp)    r16 und r17 sollen die 16 Bit Zahl darstellen
ldi r17,high(bsp)

ldi r18, 0xAC     r18 = 8Bit Zahl
clr r19

clc
add r16,r18
adc r17,r19

????????????

ist das richtig so ??
kann man was verbessern oder ist es gänzlich falsch??


danke schon mal im voraus für eure antworten

Autor: wolli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die clc-Anweisung ist überflüssig, add beachtet den Status des
Carry-Flags nicht. Der Rest ist okay, ist IMHO nicht schneller zu
bewerkstelligen.

Autor: Dingens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das clc scheint überflüssig. aber sonst.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für die antworten...
ich hätte eigentlich gehofft das an dem code was falsch ist denn ich
habe das problem das ich nach meinen ganzen rechenoperation mein
16bittiges ergäbnis in den BCD_code umwandle und dann über das uart an
mein Hyperterminal sende um dort die ergebnisse zu betrachten.
leider seh ich dort immer nur werte wie z.b 5001 dann 5256 dann 5511
usw. also immer im  abstand von 256 obwohl rein rechnerisch auch werte
wie 5046 usw. rauskommen müssten... ich dachte es liegt an der addition
von 16 mit 8 bit werten... naja da werd ich mal weiter suchen...
gruß alex

Autor: DerInder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
deine Routine funktioniert allerdings nur bei positiven 8Bit Werten,
ansonsten solltest du es wie folgt erweitern

...


ldi r18, 0xAC     r18 = 8Bit Zahl (wenn negativ)
clr r19
sbrc r18, 7
ser r19

...


Gruß
-=jens=-

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.