Ich versuche assermbly zu lernen (so mit mir tragen), und ich bin auf dieser Linie einen Compiler-Fehler erhalten:Montage: Der Wechsel zwischen zwei Speicheradressen
mov byte [t_last], [t_cur]
Der Fehler ist
error: invalid combination of opcode and operands
Ich vermute, dass die Ursache dieses Fehlers einfach ist, dass es nicht möglich ist, dass eine mov-Anweisung zwischen zwei Speicheradressen wechselt, aber eine halbe Stunde googeln und ich konnte dies nicht bestätigen - ist das der Fall?
Auch vorausgesetzt, ich bin richtig, dass heiße, ich brauche ein Register als Zwischenpunkt zum Kopieren von Speicher zu verwenden:
mov cl, [t_cur]
mov [t_last], cl
Was ist das empfohlene Register zu verwenden (oder soll ich den Stapel statt)?
Manchmal ist besser gehen Sie auf die * source * statt googeln, hier zum Beispiel ist Intel 64 & IA-32 Anweisungen AM, wo Sie Operand-Kombinationen für 'mov' sehen können http://www.intel.com/Assets/PDF/manual/253666.pdf –
Es gibt Ausnahmen von der Regel, dass ein Befehl nicht zwei Speicheroperanden aufnehmen kann; siehe [hier] (http://stackoverflow.com/questions/14510280/why-cant-mov-have-both-operands-as-memory-locations?lq=1#comment20229305_14510280). – legends2k