Dans certains jeux d'instructions, il existe des instructions distinctes pour charger un registre de la mémoire, stocker un registre dans la mémoire ou transférer des choses entre les registres. Alors que certains formulaires en langage assembleur utilisent le verbe "charger" pour tout (par exemple, les mnémoniques Z80 de Zilog utilisent ld a,(1234h)
, ld (1234h),a
et ld a,b
), et certains utilisent le transfert "T" (par exemple le 6502 avec TXA pour "transférer X vers A"), certains utilisent "déplacer" pour que les opérations d'enregistrement pour enregistrer les distinguent des charges et des magasins. Si l'on a un format d'instructions comme le 68000 qui utilise le même formulaire d'instructions générales pour les opérations de registre à registre, de registre à mémoire, de mémoire à registre et même de mémoire à mémoire, le verbe "déplacer" est probablement un meilleur verbe à usage général que n'importe quelle alternative.
Je n'ai aucune idée des jeux d'instructions de mini-ordinateur ou d'ordinateur central avant le 8080, mais le 8080 utilisait "charger" et "stocker" pour la plupart des instructions d'accès à la mémoire et "mov" pour les instructions de registre à registre, mais la plupart des instructions qui pouvaient fonctionner sur un registre arbitraire de 8 bits pourrait également fonctionner sur "M", qui était l'emplacement mémoire adressé par HL, donc un "MOV" vers ou depuis "M" se comporterait en fait comme une charge ou un stockage.
Quant à la distinction entre "copier" et "déplacer", je soupçonne que cela a beaucoup à voir avec le fait que le code ne peut ni créer ni détruire des registres; ils existent juste. En décrivant le comportement de la séquence de code mov bx,ax / mov ax,1234
, est-il plus logique de dire que la première instruction copie bx dans ax, et la deuxième instruction détruit la valeur dans ax
et la remplace par la valeur 1234, ou est-il plus logique de visualiser la première instruction comme ayant déplacé la valeur de bx vers ax (faisant de la valeur de ax un "indifférent"), et la deuxième instruction charge ax (qui n'avait pas été soucieux) avec 1234? Parfois, les registres source sont toujours significatifs après une instruction de transfert de registre, mais comme il n'y a rien dans le jeu d'instructions pour indiquer s'il le sera,