Forum: Mikrocontroller und Digitale Elektronik was bedeutetder befehl?


von Ralf (Gast)


Lesenswert?

hallo,

ich verstehe hier gerade eine Befehlszeile nicht: ldi r16,low(511)
...ist für einen mega 128...aber was genau macht sie? bzw woher nimmt
sie den wert her, der in r16 gespeichert wird?...vorallem dieses low ()
ist mir eine grauzone.

hoffe ihr könnt mir ma wieder helfen

grüsse ralf

von Thomas Burkhardt (Gast)


Lesenswert?

Hi,

dieses LOW ist Teil des Assembler und nimmt das niederwertige Byte von
511 (da dies offenbar 2 Byte breit ist). Der Wert wird vom Assembler
bestimmt und eingesetzt, denn LDI verlangt da ja ein "immediate".

von Ralf (Gast)


Lesenswert?

boah ...klasse, dat ging schnell...aber was zum geier iss 511 dachte
immer es währe eine adresse im sram oder so...also als variable ist es
jedenfalls nicht definiert

von Harald (Gast)


Lesenswert?

Hallo Ralf,

ldi bedeuted das eine Konstante in ein Register ( = Byte) geladen
wird.
low(Zahl) bedeuted das nur das niederwertige Byte von Zahl geladen
wird.
Daneben existiert noch die Direktive high(Zahl) mit der das
höherwertige Byte geladen wird.

von Thomas Burkhardt (Gast)


Lesenswert?

Hi,

dat 511 iss echt ne Konstante :) und das LOW davon auch.

Wenn du LDI r16, 12 schreibst, dann ist die 12 doch auch keine Addresse
oder Variable ;)

von Ralf (Gast)


Lesenswert?

verdammt....also ist in dem fall der wert in den klammern der lsb teil
der Zahl "511"???...und nicht irgeneine adresse?

von Ralf (Gast)


Lesenswert?

habs gerade ausprobiert...in der tat...es ist eine konstane und mein
prof. ein mieser mop für die verwirrung gggg

danke euch

grüsse ralf

von kryon2000 (Gast)


Lesenswert?

Hättest ja auch schreiben können

ldi r16, 0xff

oder

ldi r16, 255

oder oder oder.......

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.