Quelle est la différence entre que les instructions? Par exemple dans le processeur ARM9, il ne devrait pas être:Assemblée? LD & MOV
ASM: mov r0, 0
C: r0 = 0;
ASM: ld r0, 0
C: r0 = 0;
?
Je ne sais pas pourquoi utiliser un ou l'autre: S
Quelle est la différence entre que les instructions? Par exemple dans le processeur ARM9, il ne devrait pas être:Assemblée? LD & MOV
ASM: mov r0, 0
C: r0 = 0;
ASM: ld r0, 0
C: r0 = 0;
?
Je ne sais pas pourquoi utiliser un ou l'autre: S
Il doit être:
ASM: mov r0, 0
C: r0 = 0;
ASM: ld r0, 0
C: r0 = *(pc + 0);
Découvrez this carte de référence, doit avoir si vous développez pour ARM sur ASM.
Essayez ce guide: ARM Assembler Guide
Habituellement, les instructions de chargement sont utilisés pour charger des données à partir de la mémoire (directement ou indirectement) dans un registre, tandis que les données instruction de mouvement « se déplace » (copies) d'un opérande à un registre . Dans le cas de l'ARM, l'opérande source est une valeur (une constante) ou un registre (et à la fois peut être déplacé/rotation avant de copier dans le registre de destination).
La première (mov r0, #0
?), À 0 les r0 registre; le second (un pseudo-op pour ldr
?) devrait charger les données pointées par ordinateur (r15) plus décalage 0, et donc équivalent à r0 = *(pc + 0)
)
Merci. Je vais mettre à jour ma réponse. –
Que ce soit appelé MOV ou LD dépend de la langue de montage particulier. Par exemple, le langage d'assemblage Z80 utilise LD pour tout, y compris l'affectation entre les registres et l'affectation des valeurs immédiates aux registres.
En général, vous devez toujours rechercher le sens de mnemoics dans le langage assembleur particulier que vous utilisez.
Eh bien, en fait avec ARM il y a deux instructions, et ils sont très différents. MOV charge une valeur immédiate (d'une autre reg, ou une valeur codée dans l'opcode) dans un registre - pas d'accès à la mémoire. Avec LDR, un registre est chargé depuis la mémoire. Je suis d'accord à 100% avec votre dernière phrase. – Dan
Je suis d'accord. La spécificité de l'assemblage est qu'il dépend de l'architecture. Raison de ceci que chaque architecture peut avoir/a ses propres commandes/spécificités de code machine. –
Oh donc avec ld Je reçois le contenu d'une adresse mémoire ... merci! – Puyover