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
Hallo! Schau in einer ASCII-Tabelle nach. P ist 0x50
'P'
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.
Gast
#3180395
'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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.