La sintaxis del lenguaje ensamblador
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.
Por ejemplo:
MOV AL, [1000]
Esta instrucción
indica que se copie el valor de la porción de la memoria que esté en la
ubicación 1000 (En hexadecimal) a la parte baja del registro AX (AL). Cuando un
operando es un valor de una dirección de memoria, ésta dirección 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 interpretarán como hexadecimales, en los siguientes ejemplos se
interpretará que las constantes son números hexadecimales.
Instrucciones básicas:
La CPU x86 tiene 14 registros internos y
básicos. Algunos son realmente de 32 bits pero por ahora se utilizará el modo
real que es compatible con el procesador 8086 (igualmente accesibles a la parte
alta de éstos registros, inclusive en el modo real). Los registros son los
siguientes (estos registros son de 16 bits nombrados de la siguiente manera, a
excepción del registro de banderas).
Registros de uso general
·
AX: Acumulador (AL:AH)
·
BX: Registro base (BL:BH)
·
CX: Registro contador (CL:CH)
·
DX: Registro de datos (DL:DH)
Registros de segmento (Solo se pueden
usar para los usos mencionados a excepción de ES)
·
DS: Registro del segmento de datos
·
ES: Registro del segmento extra
·
SS: Registro del segmento de pila
·
CS: Registro del segmento de código
Registros punteros (También pueden tener
uso general)
·
BP: Registro de apuntadores base
·
SI: Registro índice fuente
·
DI: Registro ìndice destino
Registros especiales (Solo se pueden
usar para los usos mencionados)
·
SP: Registro apuntador de la pila
·
IP: Registro apuntador de la siguiente instrucción
·
F: Registro de banderas (8 bits)
La parte baja del registro AX se llama
AL y la parte alta AH. La parte baja del registro BX se llama BL y la parte
alta BH, y también ocurre lo mismo con el registro CX y DX.
Bits del registro de banderas
Overflow
·
NV (Apagado): No hay desbordamiento
·
OV (Encendido): Si lo hay
Direction
·
UP: Hacia adelante
·
DN: Hacia atras
Interrupts
·
DI: Desactivadas
·
EI: Activadas
Sign
·
PL: Positivo
·
NG: Negativo
Zero
·
NZ: No es cero
·
ZR: Si lo es
Auxilary carry
·
NA: No hay acarreo auxiliar
·
AC: Hay acarreo auxiliar
Parity
·
PO: Impar
·
PE: Paridad par
Carry
·
NC: No hay acarreo
·
CY: Si lo hay
No hay comentarios:
Publicar un comentario