zu AVR-Tutorial was bedeutet high(10000)

OP #1977109
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
#1977121
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

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