Intel x86 Assembly Language & Microarchitecture
Manipulación de datos
Buscar..
Sintaxis
- .386 : Le dice a MASM que compile para una versión mínima de chip x86 de 386.
- .model : establece el modelo de memoria a usar, vea .MODEL .
- .code : segmento de código, utilizado para procesos como el proceso principal.
- Proc : Declara proceso.
- ret : se utiliza para salir con éxito de las funciones, consulte Cómo trabajar con valores de retorno .
- endp : finaliza la declaración del proceso.
- público : pone el proceso a disposición de todos los segmentos del programa.
- end : Finaliza el programa, o si se usa con un proceso, como en " end main main ", hace que el proceso sea el método principal.
- llamada : llama al proceso y coloca su código de operación en la pila, vea Flujo de control .
- ecx : contador de registro, ver registros .
- ecx : contador de registro.
- mul : multiplica el valor por eax
Observaciones
mov se utiliza para transferir datos entre los registros .
Usando MOV para manipular valores
Descripción:
mov copia los valores de bits del argumento de origen al argumento de destino.
El origen / destino común son los registros , generalmente la forma más rápida de manipular valores con [en] CPU.
Otro grupo importante de valores source_of / destination_for es la memoria de la computadora.
Finalmente, algunos valores inmediatos pueden ser parte de la codificación de la instrucción mov , ahorrando tiempo de acceso a la memoria por separado leyendo el valor junto con la instrucción.
En la CPU x86 en modo de 32 y 64 bits hay muchas posibilidades de combinarlos, especialmente varios modos de direccionamiento de memoria. En general, la copia de memoria a memoria está fuera del límite (excepto las instrucciones especializadas como MOVSB ), y dicha manipulación requiere primero el almacenamiento intermedio de valores en el registro [s].
Paso 1: configure su proyecto para usar MASM , consulte Ejecución del ensamblado x86 en Visual Studio 2015
Paso 2: Escribe esto:
.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
Paso 3: Compilar y depurar.
El programa debe devolver valor 16 .