3
 La sintaxis es la siguiente Nombre de la instrucción Operando 1, Operando 2, Operando 3, Operando 4, ... El nombre de la instrucción está formada por 2 o 3 letras, los operandos pueden ser registros, constantes o direcciones de memoria. La cantidad de operandos dependerá de la instrucción. or e!emplo" #O$ %L, &1'''( Esta instrucción indica )ue se copie el *alor de la porción de la memoria )ue est+ en la ubicación 1''' En -exadecimal a la parte ba!a del registro %/ %L. 0uand o un operando es un *alor de una dirección de memoria, +sta dirección se escribe entre corc-etes, recordar )ue el operando 1 es el destino el operando 2 es el origen. cuando es una constante dependerá del ensamblador, en el caso del debug n programa )ue sir*e para crear editar aplicaciones )ue *iene con el O5 se interpretarán como -exadecimales, en los siguientes e!emplos se interpretará )ue las constantes son n6meros -exadecimales. 7a mbi+n se puede tomar un *alor de la memoria apuntado por un registro, por e!emplo" #O$ %L, &8( 8 está apuntado al *alor )ue está en la memoria )ue será copiado al registro %L . El nombre #O$ *iene de la palabra mo*e, )ue es una palabra del ingles )ue significa mo*er. 9ustamente la instrucción mencionada significa, mo*er el *alor apuntado por 8 a %L. 7a mbi+n se puede copiar el *alor de un registro a otro #O$ %L, :L En este caso se copia el *alor de :L a %L 8gualmente se puede copiar el *alor de la parte ba!a de un registro a la parte alta de otro registro #O$ 0;, L  %s< como tambi +n operar con las par tes altas #O$ %;, ;

Sintaxis de Ensamblador

Embed Size (px)

DESCRIPTION

como hacer un programa en lenguaje ensamblador

Citation preview

La sintaxis es la siguienteNombre de la instruccin Operando 1, Operando 2, Operando 3, Operando 4, ...El nombre de la instruccin est formada por 2 o 3 letras, los operandos pueden ser registros, constantes o direcciones de memoria. La cantidad de operandos depender de la instruccin.Por ejemplo:MOV AL, [1000]Esta instruccin indica que se copie el valor de la porcin de la memoria que est en la ubicacin 1000 (En hexadecimal) a la parte baja del registro AX (AL). Cuando un operando es un valor de una direccin de memoria, sta direccin se escribe entre corchetes, recordar que el operando 1 es el destino y el operando 2 es el origen. Y cuando es una constante depender del ensamblador, en el caso del debug (Un programa que sirve para crear y editar aplicaciones que viene con el DOS) se interpretarn como hexadecimales, en los siguientes ejemplos se interpretar que las constantes son nmeros hexadecimales.Tambin se puede tomar un valor de la memoria apuntado por un registro, por ejemplo:MOV AL, [DI]DI est apuntado al valor que est en la memoria que ser copiado al registro AL. El nombre MOV viene de la palabra move, que es una palabra del ingles que significa mover. Justamente la instruccin mencionada significa, mover el valor apuntado por DI a AL.Tambin se puede copiar el valor de un registro a otroMOV AL, BLEn este caso se copia el valor de BL a ALIgualmente se puede copiar el valor de la parte baja de un registro a la parte alta de otro registroMOV CH, DLAs como tambin operar con las partes altasMOV AH, DHInclusive se puede copiar el valor de un registro a una direccin de memoriaMOV [1000], ALIgualmente apuntada la direccin de memoria a DIMOV [DI], ALY tambin con los registros completos (Solamente completos en el procesador 8086)MOV AX, DXTambin trabajar con los registros completos para todos los procesadores de 32 bitsMOV EBX, EDXEn ste caso mueve la totalidad del registro DX a la totalidad del registro BX, en ste caso se est trabajando con los registros en forma extendida (32 bits), pero hay que tener precaucin ya que el procesador 8086 no interpretar correctamente sta instruccin (El procesador 8086 es obsoleto por sta desventaja y otras ms, por ejemplo slo puede direccionar 1 MB), adems el debug no puede interpretar sta instruccin.No se puede realizar lo siguiente porque no se pueden pasar valores en la memoria sin la intervencin de un registro, adems no se ha especificado el tamaoMOV [1000], [2000]Igualmente no se puede hacer lo siguienteMOV [DI], [1000]As como tambin lo siguienteMOV [DI], [SI]Sin embargo lo siguiente es correctoMOV [1000], AXPero no lo siguiente porque no se est especificando el tamaoMOV [SI], 1FLo correcto sera lo siguienteSi se quiere transferir un byteMOV byte [SI], 1FSi se quiere transferir una palabra (16 bits)MOV word [SI], 1FSi se quiere transferir una doble palabra (32 bits)MOV dword [SI], 1F