Intel x86 Assembly Language & Microarchitecture
Manipolazione di dati
Ricerca…
Sintassi
- .386 : indica a MASM di compilare una versione di chip x86 minima di 386.
- .model : imposta il modello di memoria da usare, vedi .MODEL .
- .code : segmento di codice, utilizzato per processi come il processo principale.
- proc : dichiara il processo.
- ret : usato per uscire correttamente dalle funzioni, vedere Lavorare con i valori restituiti .
- endp : termina la dichiarazione di processo.
- pubblico : rende disponibile il processo per tutti i segmenti del programma.
- fine : termina il programma o, se utilizzato con un processo, come in " end main ", rende il processo il metodo principale.
- chiamata : le chiamate elaborano e trasferiscono il codice operativo nello stack, vedere Controllo flusso .
- ecx : registro contatore, vedere registri .
- ecx : registro contatore.
- mul : moltiplica il valore di eax
Osservazioni
mov viene utilizzato per trasferire i dati tra i registri .
Usare MOV per manipolare i valori
Descrizione:
mov copia i valori dei bit dall'argomento source all'argomento destination.
Common source / destination sono registri , di solito il modo più veloce per manipolare i valori con [in] CPU.
Un altro importante gruppo di valori source_of / destination_for è la memoria del computer.
Infine alcuni valori immediati possono far parte della codifica dell'istruzione mov stessa, risparmiando tempo di accesso alla memoria separato leggendo il valore insieme all'istruzione.
Sulla CPU x86 in modalità 32 e 64 bit ci sono molte possibilità per combinarle, specialmente le varie modalità di indirizzamento della memoria. Generalmente la copia da memoria a memoria è fuori limite (eccetto istruzioni specializzate come MOVSB ), e tale manipolazione richiede prima la memorizzazione intermedia dei valori nel registro [s].
Passaggio 1: impostare il progetto per l'utilizzo di MASM , vedere Esecuzione dell'assembly x86 in Visual Studio 2015
Passaggio 2: digita questo:
.386
.model small
.code
public main
main proc
mov ecx, 16 ; Move immediate value 16 into ecx
mov eax, ecx ; Copy value of ecx into eax
ret ; return back to caller
; function return value is in eax (16)
main endp
end main
Passaggio 3: compilare e eseguire il debug.
Il programma dovrebbe restituire il valore 16 .