Assembler : Bedeutung von movq %rax, (%rdi, %r10, 8) ?

StudentNRW

Mitglied
Hey Leute, das hier ist übrigens die AT&T Schreibweise.

Andersrum ist mir diese Anweisung bekannt : movq (%rdi, %r10, 8), %rax -> Inhalt %rdi + 8 * %r10 in %rax schreiben

Aber was ist mit dieser Anweisung gemeint : movq %rax, (%rdi, %r10, 8) ?
Ist der Wert von %rax dann der neue Inhalt des virtuellen Speichers der Adresse : %rdi + 8 * %r10 ?

Danke für jede Antwort !
 

httpdigest

Top Contributor
movq (%rdi, %r10, 8), %rax

bedeutet: Lese ein quad-word (quad = 4 und word = 16-bits; also 64bits) im virtuellen Speicher an Adresse %rdi + %r10 * 8 und speichere den Wert an dieser Speicherstelle in das Register %rax.

movq %rax, (%rdi, %r10, 8)

bedeutet dann halt das umgekehrte: Speichere den Inhalt des Registers %rax in den virtuellen Speicher an der Adresse %rdi + %r10 * 8, und zwar die ganzen 64-bits des Registers.
 

StudentNRW

Mitglied
movq (%rdi, %r10, 8), %rax

bedeutet: Lese ein quad-word (quad = 4 und word = 16-bits; also 64bits) im virtuellen Speicher an Adresse %rdi + %r10 * 8 und speichere den Wert an dieser Speicherstelle in das Register %rax.

movq %rax, (%rdi, %r10, 8)

bedeutet dann halt das umgekehrte: Speichere den Inhalt des Registers %rax in den virtuellen Speicher an der Adresse %rdi + %r10 * 8, und zwar die ganzen 64-bits des Registers.
Okay, vielen Dank !
 

Ähnliche Java Themen

Neue Themen


Oben