PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Assembler Hilfe



Wsk8
01.07.2012, 20:52
Hallo,
hätte da mal kurz ein paar Fragen zu Assembler. Ich habe folgende Befehle:

ADD R10, #10
ADD R12, (10)
ADD R13, (R1)
ADD R14, @(R3)
ADD R15, (R4+R)

Mich würde interessieren, was jetzt der letzte Operand macht, also was bewirkt z.B. @(R3).

mfg

PicNick
02.07.2012, 11:03
Den konkreten Assembler kenn ich nicht, aber "@" heisst normalerweise "deferred". D.h. indirekt.
ADD R14, @(R3)
lädt als in das Register R14 nicht das, wo (R3) hinzeigt, sondern
(R3) zeigt auf eine Adresse und R14 lädt das was an DIESER adresse steht
War ich verständlich ?

Wsk8
02.07.2012, 13:01
Also in R3 steht eine Adresse z.b. 10h und in R14 wird geladen, was im Speicher bei 10h steht?

mfg

PicNick
02.07.2012, 13:08
Ich würde das ziemlich sicher so vermuten (unter dem genannten Vorbehalt).
R3 der wert von R3
(R3) das wo r3 hinzeigt
@(R3) das wo r3 hinzeigt, ist die eigentlich adresse

Sollte aber auch im Manual stehen (Instruction Set, gibt's für alle Prozessoren)
Würde raten, dir das runterzuladen, wenn du mehr assemblierst, spart das vielen Kummer

Wsk8
02.07.2012, 17:35
Also @(R3) zeigt auf eine Adresse, wo eine Adresse_2 steht und der Wert an Adresse_2 wird dann verwendet? Wie in C ein Pointer auf einen Pointer.

mfg