Spostamento dei dati nella lingua dell'assembly:
MOV B, A
Se trasferisco il contenuto dal registro interno A al registro B, cosa succede al contenuto del registro A? È cancellato? Rimane invariato?
Il comando MOV
lascerà il contenuto del registro A da solo. Da una documentazione x86 (corsivo aggiunto):
The mov instruction copies the data item referred to by its second operand (i.e. register contents, memory contents, or a constant value) into the location referred to by its first operand (i.e. a register or memory).
Ci sono molti altri linguaggi di assemblaggio, ma puoi contare sulla maggior parte dei linguaggi moderni che funzionano allo stesso modo.
La risposta dipende in gran parte dalla CPU e dalla lingua dell'assembly che hai scelto come target:
MOV target, source
mov source, target
MOV target, source
La fonte rimane invariata per una mossa.
Per curiosità e nostalgia, un paio di vecchie CPU hanno utilizzato anche altre covnetion:
MOV source, target
MOVE source, target
MOV
, ma utilizza diverse varianti di carichi e negozi , il primo che usa targe, source e la seconda fonte, target. Aveva anche diverse varianti di movimento ma chiamate diversamente dalla convenzione di denominazione solo la prima lettera. Leggi altre domande sui tag assembly