Trasferimento dati in linguaggio assembly

5

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?

    
posta Lu Ka 21.11.2016 - 21:48
fonte

2 risposte

2

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).

link

Ci sono molti altri linguaggi di assemblaggio, ma puoi contare sulla maggior parte dei linguaggi moderni che funzionano allo stesso modo.

    
risposta data 21.11.2016 - 22:00
fonte
2

La risposta dipende in gran parte dalla CPU e dalla lingua dell'assembly che hai scelto come target:

La fonte rimane invariata per una mossa.

Per curiosità e nostalgia, un paio di vecchie CPU hanno utilizzato anche altre covnetion:

  • il buon vecchio PDP11 (ok, c'è poco rischio che questo lo bersagli oggigiorno) ha avuto il sposta nella direzione opposta : MOV source, target
  • la vecchia famiglia di Motorala 68K aveva un MOVE source, target
  • il PowerPC non ha avuto 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.
risposta data 22.11.2016 - 00:53
fonte

Leggi altre domande sui tag