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

Entradas más populares de este blog

Código Java Notación polaca-polaca Inversa

1.6 Generación de la tabla de símbolo y de direcciones

Código en EMU8086