Forum: Mikrocontroller und Digitale Elektronik compare Befehl assembler


von Julia S. (etechnikerin)


Lesenswert?

Hi

ich programmiere für den ATmega8 und bin auf ein Problem gestoßen, wenn 
ich eine Bedingung abfragen will, allerdings nicht mit Zahlen, sondern 
Buchstaben, wie muss ich da vorgehen? Also wenn ich R17 mit P 
vergleichen möchte.
P in eine Zahl umwandeln?

Danke für eure Hilfe

von Stefan S. (stefan2013)


Lesenswert?

Hallo!

Schau in einer ASCII-Tabelle nach.
P ist 0x50

von (prx) A. K. (prx)


Lesenswert?

'P'

von Karl H. (kbuchegg)


Lesenswert?

Julia Schneider schrieb:

> P in eine Zahl umwandeln?

Brauchst du nicht.
Das macht schon der Assembler für dich. Du schreibst

  cpi  r17, 'P'

und der Assembler erstezt 'P' durch seinen ASCII Code.
Denn: in einem COmputer ist ausnahmslos ALLES lediglich eine Zahl. So 
etwas wie Buchstaben gibt es nicht. Damit ein Terminal einen Buchstaben 
anzeigt, schickt man ihm eine Zahl (den ASCII Code eines Zeichens) und 
da das Terminal ein Terminal ist, weiß es, dass es für dieses Zahl ein 
bestimmtes Pixelmuster anzeigen muss, welches du dann als 'P' liest.

von Uwe2 (Gast)


Lesenswert?

'A'=0x41
'B'=0x42
...

Also
x=('A'-0x40)+('B'-0x40)+0x40
x='C' oder auch
x=0x43
x=0b01000011
x=67

Guck doch einfach mal in den Simulator, Debugger im Speicher Register 
Window und klick mal mit der Rechten Maustaste drauf. Da kann man 
meistens einstellen wie der Speicher angezeigt werden soll ob als 
Buchstabe(ASCII Zeichen), als Hexadezimale Zahlen usw.
Variablen und Register kann man sich zumeist auch im Dezimalformat oder 
als Binäre representation angucken.
Das sind jedoch nuranzeigeoptionen in der Realität stehen dort immer 
Nulllen und Einsen also Binärformat.
http://de.wikipedia.org/wiki/Dualsystem

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.