Registros del emulador 8086
Lamentablemente,
como modelo de lenguaje basado en texto, no tengo acceso directo a registros
específicos de emu8086, ya que es un emulador del procesador Intel 8086 y estoy
limitado a proporcionar información basada en conocimientos previos hasta
septiembre de 2021. Sin embargo, puedo brindarte una descripción general de los
registros comunes del procesador Intel 8086 y su funcionalidad. Ten en cuenta
que estos registros son parte del conjunto de instrucciones del procesador y
podrían variar en diferentes emuladores o versiones.
1.
Registros de datos:
- AX: Registro acumulador, utilizado para
operaciones aritméticas y de datos.
- BX: Registro de base, utilizado como
índice en operaciones de acceso a memoria.
- CX: Registro de contador, utilizado como
contador en bucles y repeticiones.
- DX: Registro de datos, utilizado en
operaciones de E/S y multiplicaciones/divisiones extendidas.
2.
Registros de segmento:
- CS: Segmento de código, contiene la dirección
base del segmento de código actual.
- DS: Segmento de datos, contiene la
dirección base del segmento de datos.
- SS: Segmento de pila, contiene la
dirección base del segmento de pila.
- ES: Segmento extra, puede ser utilizado
para acceder a otro segmento de datos.
3.
Punteros de pila y de instrucción:
- SP: Puntero de pila, indica la ubicación
actual en la pila.
- BP: Puntero de base, utilizado como índice
de base para acceder a variables locales y parámetros de función.
- IP: Puntero de instrucción, contiene la
dirección de la próxima instrucción a ejecutar.
4.
Registro de banderas:
- FLAGS: Contiene indicadores de estado para
controlar y supervisar las operaciones del procesador, como el estado de las
operaciones aritméticas, las comparaciones y las operaciones lógicas.
Estos
son solo algunos de los registros más comunes utilizados en el procesador Intel
8086. Cada registro tiene un propósito específico y se utiliza en diferentes
situaciones durante la ejecución del programa. Si necesitas información más
detallada o específica sobre el uso de registros en emu8086, te recomendaría
consultar la documentación oficial o las fuentes de información relacionadas
con ese emulador en particular.
8086
AAA -->Ajuste ASCII para adición.
AAD -->Ajuste ASCII para división.
AAM -->Ajuste ASCII para multiplicación.
AAS -->Ajuste ASCII para división.
ADC acum, inmed -->Suma con acarreo.
r/m,inmed
r/m,
reg
reg,
r/m
ADD acum,inmed -->Suma.
r/m,inmed
r/m,
reg
reg,
r/m
AND acum,inmed -->Operación AND a nivel bit.
r/m,inmed
r/m,
reg
reg,
r/m
CALL -->etiqueta Llamado.
r/m
CBW -->Convierte byte apalabra.
CLC -->Limpia bandera de acarreo.
CLD -->Limpia bandera de dirección.
CLI --> Limpia bandera de interrupción.
CMC--> Complementa bandera de acarreo.
CMP -->acum,inmed Comparación
r/m,inmed
r/m,
reg
reg,
r/m
CMPS src,dest -->Comparación de cadenas.
CMPSB --> Compara cadenas byte por byte.
CMPSW -->Compara cadenas palabra por palabra.
CWD -->Convierte palabra a palabra doble.
DAA--> Ajuste decimal para adición.
DAS--> Ajuste decimal para substracción.
DEC r/m -->Decremento.
reg
DIV r/m -->División.
ESC inmed, r/m--> Escape con 6 bits.
HLT--> Alto.
IDIV r/m -->División entera.
IMUL r/m -->Mutiplicación entera.
IN accum,inmed -->Entrada desde puerto.
acum,
DX
INC r/m --> Incremento.
reg
INT3 -->Interrupción3 codificada como un byte.
INT inmed -->Interrupción0-255.
INTO -->Interrupción en overflow.
IRET -->Retorno de interrupción.
JMP -->etiqueta Brinco incondicional.
r/m
J(condición)etiqueta
Brinca de acuerdo a las condiciones: A (arriba), AE (arriba o igual), B
(siguiente),
BE (siguiente o igual), C(acarreo), CXZ (CX en cero), E (igual),
G
(mayor), GE (mayor o igual), L (menor), LE (menor o igual), NA (no
anterior),
NAE (no anterior o igual), NB (no siguiente), NBE(no siguiente o
igual),
NC (no acarreo), NE (no igual), NG(no mayor), NGE (no mayor o
igual),
NL (no menor), NLE (no menor o igual), NO(no sobreflujo), NP (no
paridad),
NS (no signo), NZ (no cero), O(sobreflujo), P (paridad),
PE(paridad
par), PO (paridad impar), S (signo), Z (cero).
LAHF -->Carga AH con las banderas.
LDS r/m--> Carga DS.
LEA r/m -->Carga la dirección.
LES r/m--> Carga ES.
LOCK -->Cierra bus.
LODS src -->Carga cadena.
LODSB -->Carga byte de cadena en AL.
LODSW -->Carga palabra de la cadena en AX.
LOOP--> etiqueta Ciclo.
LOOPE -->etiqueta Ciclo mientras igual.
LOOPNE--> etiqueta Ciclo mientras no igual.
LOOPNZ -->etiqueta Ciclo mientras no cero.
LOOPZ -->etiqueta Ciclo mientras cero.
MOV acum,mem -->Mueve un valor del segundo al primer operando
r/m,inmed
mem,
acum
r/m,
reg
r/m,segreg
reg,
inmed
reg,r/m
segreg,r/m
MOVS dest, src--> Mueve cadena.
MOVSB -->Mueve cadena byte por byte.
MOVSW -->Mueve cadena palabra por palabra.
MUL r/m -->Multiplicación.
NEG r/m--> Niega(complemento a 2).
NOP--> Operación ociosa.
NOT r/m--> Invierte valores de bits (complemento a 1).
OR acum, inmed--> Operación OR a nivel de bit.
r/m,inmed
r/m,
reg
reg,r/m
OUTDX, accum -->Salida por el puerto dado por el primer operando.
inmed,
acum (inmediato de 8 bits)
POP r/m--> Recupera valor de la pila.
reg
segreg
POPF--> Recupera banderas.
PUSH r/m--> Guarda valor en la pila.
reg
segreg
PUSHF -->Guarda banderas.
RCL r/m,1--> Rotación a la izquierda con acarreo.
r/m,CL
RCR r/m, 1--> Rotación a la derecha con acarreo.
r/m,
CL
REP--> Repite.
REPE -->Repite si igual.
REPNE -->Repite si no igual.
REPNZ -->Repite si no cero.
REPZ--> Repite si cero.
RET [inmed]--> Regresa después de recuperar bytes de la pila.
ROL r/m,1 -->Rotación a la izquierda.
r/m,
CL
ROR r/m,1--> Rotación a la derecha.
r/m,
CL
SAHF -->Carga banderas con el valor de AH.
SAL r/m, 1 -->Desplazamiento aritmético a la izquierda.
r/m,
CL
SAR r/m, 1--> Desplazamiento aritmético a la derecha.
r/m,
CL
SBB acum, inmed -->Substracción con acarreo.
r/m,inmed
r/m,
reg
reg,r/m
SCAS dest -->Explora cadena.
SCASB -->Explora cadena para el byte en AL.
SCASW--> Explora cadena por la palabra en AX.
SHL r/m, 1--> Desplazamiento a la izquierda.
r/m,
CL
SHR r/m, 1 -->Desplazamiento a la derecha.
r/m,
CL
STC--> Fija bandera de acarreo.
STD -->Fija bandera de dirección.
STI-->Fija bandera de interrupción.
STOS--> dest Guarda cadena.
STOSB--> Guarda byte en AL en la cadena.
STOSW -->Guarda palabra en AX en la cadena.
SUB accum, inmed -->Substracción.
r/m,inmed
r/m,
reg
reg,r/m
TEST acum, inmed -->Comparación.
r/m,inmed
r/m,
reg
reg,r/m
WAIT--> Aguarda.
XCHG
acum, reg Intercambio.
r/m,inmed
r/m,
reg
reg,r/m
XLAT -->Traduce.
XOR acum, reg--> Operación XOR a nivel bit.
r/m,inmed
r/m,
reg
reg,r/m
Comentarios
Publicar un comentario