Montage? LD & MOV
Was ist der Unterschied zwischen Anweisungen? Z.B. ARM9-Prozessor, es sollte nicht sein:
ASM: mov r0, 0
C: r0 = 0;
ASM: ld r0, 0
C: r0 = 0;
?
Ich weiß nicht, warum der eine oder andere :S
- Warum hast du mit diesem tag intel-syntax (stackoverflow.com/tags/intel-syntax/info)? Das macht keinen Sinn; dies ist ein ARM in Frage. Intel-syntax ist eine der zwei wichtigsten Aromen der syntax für die x86, die eine eigene Architektur. x86 ist
mov
Anweisung kann einen Speicher, register oder unmittelbare Quelle, und nicht über eine separateld
Unterricht. - Hi @PeterCordes ich es markiert für die Klärung des Operanden um, nur (erste DST, SRC zweiten). Aber ich sehe Ihren Punkt, ok.
- Ich bin mir nicht bewusst ein Ziel-die letzten Geschmack von ARM-asm bestehenden in Erster Linie der Klärung Bedarf. Plus, die
r0 = 0
C-version schon entfernt jede Zweideutigkeit für Menschen, die nicht wissen, dass ARM ist immer output(s) erste, wie die meisten asm-Syntax für die meisten Architekturen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Muss es sein:
Check-out diese Referenz-Karte haben muss, wenn Sie die Entwicklung für ARM auf ASM.
In der Regel die LoaD-Anweisungen werden verwendet, um das laden der Daten aus dem Speicher (direkt oder indirekt) in ein register, während der MOVe-Anweisung "bewegt" (Kopien) von Daten aus einem Operanden in einem register. In den ARM Falle, wird der source-operand ist ein Wert (eine Konstante) oder ein register (und beide können verschoben/gedreht vor dem kopieren in den Ziel-register).
Also der erste (
mov r0, #0
?), setzen auf 0 wird das register r0; der zweite (eine pseudo-op fürldr
?) sollte das laden der Daten zeigte pc (r15) plus offset 0, und so entsprichtr0 = *(pc + 0)
)Versuchen Sie diese Anleitung: - ARM-Assembler-Handbuch
Ob es heißt MOV-oder LD, hängt von der jeweiligen assembly-Sprache. Zum Beispiel der Z80-Assembler-Sprache verwendet LD für alles, einschließlich Zuordnung zwischen Registern und Zuordnung von sofortigen Werten zu Registern.
Generell sollte man immer nachschlagen der Bedeutung von mnemoics in der jeweiligen Assembler-Sprache, die Sie verwenden.
ldr r0, =0x1234
als pseudo-Instruktion, die laden aus einem literal pool, oder nutzen könnte, ALU instruction(s) zu erstellen, die Konstante in das register. So LDR ist nicht immer eine Last!