L'assemblée? LD & MOV
Quelle est la différence entre ce que des instructions? Par exemple dans le processeur ARM9, il ne devrait pas être:
ASM: mov r0, 0
C: r0 = 0;
ASM: ld r0, 0
C: r0 = 0;
?
Je ne sais pas pourquoi utiliser l'un ou l'autre :S
Pourquoi avez-vous cette balise intel-syntaxe (stackoverflow.com/tags/intel-syntax/info)? Qui n'a pas de sens; c'est un BRAS de la question. Intel-syntaxe est l'une des deux grandes saveurs de la syntaxe pour les architectures x86, qui est distinct de l'architecture. x86 de
Salut @PeterCordes, j'ai marqué pour la clarification de l'opérande ordre (d'abord de l'heure d'été, deuxième SRC). Mais je comprends votre point, ok.
Je ne suis pas au courant d'une destination-dernière saveur de BRAS asm existants, en premier lieu pour exiger des éclaircissements. De Plus, la
mov
instruction peut avoir une mémoire, registre, ou de la source immédiate, et ne pas avoir une ld
instruction.Salut @PeterCordes, j'ai marqué pour la clarification de l'opérande ordre (d'abord de l'heure d'été, deuxième SRC). Mais je comprends votre point, ok.
Je ne suis pas au courant d'une destination-dernière saveur de BRAS asm existants, en premier lieu pour exiger des éclaircissements. De Plus, la
r0 = 0
C version déjà enlève toute ambiguïté pour les personnes qui ne savent pas que le BRAS est toujours de sortie(s) tout d'abord, comme la plupart des asm syntaxes pour la plupart des architectures.OriginalL'auteur Puyover | 2010-07-10
Vous devez vous connecter pour publier un commentaire.
Il doit être:
Découvrez cette de la carte de référence, doit avoir si vous êtes en développement pour le BRAS sur l'ASM.
OriginalL'auteur Andrejs Cainikovs
Généralement les instructions de Chargement sont utilisés pour charger des données à partir de la mémoire (directement ou indirectement) dans un registre, pendant le Déplacement de l'instruction "mouvements" (copies) des données à partir d'un opérande de registre. Dans le cas ARM, la source et l'opérande est une valeur (constante) ou un registre (et peut être déplacé/rotation avant de la copier dans le registre de destination).
De sorte que la première (
mov r0, #0
?), set à 0 le registre r0; la seconde (un pseudo-op pourldr
?) doit charger les données pointées par pc (r15), plus l'offset 0, et donc être équivalent àr0 = *(pc + 0)
)OriginalL'auteur ShinTakezou
Essayez ce guide: BRAS Assembleur Guide
OriginalL'auteur Lior
Si elle est appelée MOV ou LD dépend du langage d'assemblage. Par exemple, le langage assembleur Z80 utilise LD pour tout, y compris la cession entre les registres et la cession immédiate des valeurs de registres.
En général, vous devriez toujours regarder vers le haut le sens de mnemoics dans l'assemblée particulière de la langue que vous utilisez.
Je suis d'accord. Les spécificités de l'assemblée, c'est qu'il est dépendants de l'architecture. La raison de ce que chaque architecture a son propre code machine commandes/particularités.
BRAS assembleurs utilisation
ldr r0, =0x1234
comme une pseudo-instruction qui peut charger une interprétation littérale de la piscine, ou qu'il pourrait utiliser ALU instruction(s) pour créer la constante dans le registre. Donc LDR n'est pas toujours une charge!grand point. Je pense que je faisais allusion à la LDR instruction, par opposition à la LDR pseudo-instruction (que serait la vie sans confusion!)
OriginalL'auteur starblue