www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik zu AVR-Tutorial was bedeutet high(10000)


Autor: Olli R. (downunderthunder42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin gerad dabei, das AVR-Tutorial zu durchlaufen.

Jetzt habe ich eine wahrscheinlich kurz zu beantwortende 
Verständnisfrage.
Ich bin im Kapitel "LCD" -- Ausgabe eines 16Bit Zahlenwerts.

Ich habe mit folgender Programmzeile ein Problem:

;
lcd_number16:
           push  temp1
           push  temp2
           push  temp3

; ** Zehntausender **
           ldi   temp1, '0'-1
lcd_number1:
           inc   temp1
           subi  temp2, low(10000)
           sbci  temp3, high(10000)      <--- was macht dieses 
high(10000)??????????????? sbci --> substract with Carry Constant from 
Register
           brcc  lcd_number1
           subi  temp2, low(-10000)
           sbci  temp3, high(-10000)
           rcall lcd_data

; ** Tausender **
Viele Grüße

Olli

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Olli R. (downunderthunder42)

>           sbci  temp3, high(10000)      <--- was macht dieses
>high(10000)???????????????

high() ist ein Macro vom Assembler, es liefert als Ergebnis das High 
Byte einer Konstanten.
Sprich, wenn man die Dezimalzahl 10000 als Hexadezimal schreibt ergibt 
das 0x2710, die Funktion high liefert dann 0x27.
0x ist die Kennzeichnung für hexadezimale Zahlen,  im AVR-Assembler kann 
man auch $ schreiben.

10000  dezimal
0x2710 hexadezimal
$2710 hexadezimal

MFG
Falk

Autor: Olli R. (downunderthunder42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort.

Jetzt ist's mir klar.

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.