Red de conocimiento informático - Conocimiento sistemático - Mnemónicos del lenguaje ensamblador

Mnemónicos del lenguaje ensamblador

Sistema de comando 8086/8088

1. Instrucciones de transmisión de datos

1. Instrucciones generales de transferencia de datos

Transferencia MOV (móvil)

Push. En(Empujar a la pila)

Pop(Sop de la pila)

Intercambio

. Comando MOV

Formato: MOV Daylight Saving Time, SRC

Operación realizada: (Daylight Saving Time)

. Instrucción push stack

Formato: push SRC

Operación realizada: (sp)

((SP) 1, (SP)) lt;-( SRC)

. Comando de pila emergente

Formato: Horario de verano popular

Operación realizada: (Horario de verano)

(SP) lt -(SP) 2

. Instrucciones de intercambio XCHG

Formato: XCHG OPR1, OPR2.

Operación realizada: (opr1)

2. Instrucción de transferencia especial del acumulador

Entrada entrada

Salida salida

Código de escape XLAT (traducción)

Este conjunto de instrucciones se limita a utilizar el acumulador AX o AL para transmitir información.

. Comando de entrada

Formato largo: puerto de entrada (byte)

En AX, puerto (palabra)

Operación realizada: (al) < -( puerto)( byte)

(AX) <-(PUERTO 1,PUERTO) (palabra)

Forma corta: en AL, DX(byte)

En AX, DX (palabra)

Operación realizada: Al

AX lt-((DX) 1, DX) (palabra)

. Comando de salida OUT

El formato largo es: OUT PORT, AL (byte).

Puerto de salida, AX(Word)

Operación realizada: (Puerto)

(PUERTO 1, PUERTO) lt -(AX)(Word) <; /p>

Formato corto: OUT DX, AL (byte)

Salida DX, AX (palabra)

Operación realizada: ((dx)) < - (AL) (byte)

((DX) 1, (DX)) <-AX (palabra)

En máquinas IBM-PC, los dispositivos externos pueden tener hasta 65536 puertos de E/S , estos puertos (es decir, las direcciones de puerto de los dispositivos periféricos) son

0000~FFFFH. Los primeros 256 puertos (0~FFH) se pueden especificar directamente en el comando. Este es el puerto de formato largo. Cuando el comando de la máquina se expresa en dos bytes, el segundo byte es el número de puerto. directamente en la especificación.

Números de puertos, pero sólo los primeros 256 puertos. Cuando el número de puerto >=256, solo se puede utilizar el formato corto. En este momento debes ingresar primero el número de puerto.

Registro DX (el número de puerto puede ser de 0000 a 0FFFFH) y luego usa instrucciones IN o OUT para transmitir información.

. Comando de escape XLAT

Formato: XLAT OPR

o: XLAT

Operación realizada: (al) < -((BX) (AL))

3. Dirección efectiva de la instrucción de registro

La dirección efectiva LEA (cargar dirección efectiva) se envía al registro.

Punteros a registros y DS.

Punteros a registros y ES.

. La dirección válida registrada por LEA

El formato es: LEA REG, SRC.

Operación realizada: (reg)

La instrucción envía la dirección efectiva del operando fuente al registro especificado.

.

Puntero LDS a registros e instrucciones DS

Formato: LDS REG, SRC

Operación realizada: (reg)

(DS) lt;-(SRC 2)

Envía los cuatro bytes consecutivos especificados por el operando fuente al registro especificado por la instrucción y el registro DS. Esta instrucción normalmente especifica el

registro SI

. Puntero LES a registros e instrucciones ES

Formato: LES REG, SRC

Operación realizada: (reg)

(ES) lt;-(SRC 2)

Envía los cuatro bytes consecutivos especificados por el operando fuente al registro especificado por la instrucción y al registro es. Esta instrucción generalmente especifica el registro DI

4. Instrucción de transferencia de registro de bandera

bandera LAHF (cargar AH con bandera) para enviar AH.

SAHF (Guardar como indicador) Enviar indicador para registrar

Indicador PUSHF (Insertar indicador) en la pila.

Se izó la bandera de POPF.

LAHF firmó la bandera

Formato: LAHF

Operación realizada: (ah)

Registro de la bandera SAHF

Formato: SAHF

Operación realizada: (byte bajo de PWS)

. La bandera PUSHF va a la pila.

Formato: PUSHF

Operación realizada: (sp)

((SP) 1, (SP)) lt -(PSW)

. Apilar bajo la bandera POPF

Formato: POPF

Operación realizada: (pws)

(SP) lt -(SP 2)

Segundo, instrucciones aritméticas

1. Instrucciones de suma

Sumar (sumar) suma

ADC con suma de acarreo (suma con acarreo)

INC (incremento) más 1

Agregar descripción

Formato: Agregar DST, SRC

Operación realizada: (Horario de verano)

ADC con instrucción carry add

Formato: ADC DST, SRC

Operación realizada: (horario de verano)

. Instrucción de suma más 1

Formato: Operaciones de la empresa

Operación realizada: (OPR)

2 Instrucción de resta

Resta p>

SBB (restar con pedir prestado) Restar con pedir prestado.

DEC (decremento menos 1

Complemento negativo

Comparación CMP (comparar)

Instrucción de resta

Formato : Horario de verano, Horario de verano

Operación realizada: (Horario de verano)

SBB con instrucción de resta de préstamo

Formato: Horario de verano SBB,. SRC

Operación realizada: (Horario de verano)

DEC menos 1 comando

Formato: diciembre hábil

Operación ejecutada: ( OPR)

Instrucción de complemento negativo

Formato: OPR negativo

Operación realizada: (OPR)

Instrucción de comparación CMP

Formato: CMP OPR1, OPR2

Operación realizada: (OPR1)-(OPR2)

Esta instrucción realiza la resta como la subinstrucción, pero el resultado no se guarda, pero solo la mitad occidental del indicador de condición se establece según el resultado

3. Instrucción de multiplicación

Multiplicación sin signo

Multiplicación IMUL (múltiple con signo). números firmados

.

Instrucción de multiplicación sin signo MUL

Formato: MUL SRC

Operación realizada:

Bytes operandos: (ax) < -(AL)*( SRC)

Operandos de palabra: (dx, ax) < -(AX)*(SRC)

. Instrucción de multiplicación con signo IMUL

Formato: IMUL SRC

Operación realizada: igual que MUL, pero debe ser un número con signo, MUL es un número sin signo.

4. Instrucciones de división

División sin signo

IDIV (división con signo) división digital con signo

CBW (byte Convertir a Word) Bytes se convierten en palabras.

Las palabras CWD (Contert word to double word) se convierten en palabras dobles.

. Instrucción de división sin signo

Formato: DIV SRC

Operaciones realizadas:

Operaciones de bytes: (al)0 y ZF=1.

LOOPNZ/LOOPNE ejecuta instrucciones en bucle cuando las instrucciones no son cero o iguales.

Formato: LOOPNZ (o LOOPNE) OPR

Condiciones de prueba: (CX)< >0 y ZF=0.

Los pasos de estas tres instrucciones son:

1)(CX) lt;-(CX)-1

2) Verifique si las condiciones de prueba son cumplido, Si está satisfecho, (IP)

4.Subrutina

. Llamar al comando

. Instrucción de retorno RET

Interrupción

. Instrucción INT

Formato: tipo INT

o INT

Operación realizada: (sp)

((SP) 1, ( SP )) lt;-(PSW)

(SP) lt;-(SP)-2

((SP) 1, (SP)) lt;-(CS)

(SP) lt;-(SP)-2

((SP) 1, (SP)) lt;-(Derechos de Propiedad Intelectual)

( IP) lt;-(Tipo*4)

(CS) lt;-(Tipo*4 2)

. Si se produce un desbordamiento, se convierte en una interrupción.

Operación realizada: Si OF=1, entonces:

(SP) lt;-(SP)-2

((SP) 1, ( SP )) lt;-(PSW)

(SP) lt;-(SP)-2

((SP) 1, (SP)) lt;-(CS)

(SP) lt;-(SP)-2

((SP) 1, (SP)) lt;-(Derechos de Propiedad Intelectual)

( IP)lt;-(10H)

(CS)lt;-(12H)

. IRET devuelve una instrucción de una interrupción.

Formato: IRET

Operación realizada: (IP)

(SP) lt; -(SP) 2

(CS ) lt;-((SP) 1, (SP))

(SP) lt;-(SP) 2

(PSW) lt;-((SP) 1, ( SP))

(SP) lt;-(SP) 2

6. Instrucciones de control del procesador

1. >. Instrucción de posición 0 de acarreo de CLC (borrar acarreo) cf

Acarreo del complemento de acarreo CMC cf

. Instrucción de posición de acarreo 1 del STC (establecer acarreo) cf

. El indicador de dirección CLD establece el comando 0 (borrar dirección) df < -0

.

Comando de configuración 1 del indicador de dirección STD (establecer dirección) df

. El indicador de interrupción CLI se establece en 0 (borra la interrupción) si

. Indicador de interrupción STI establece 1 instrucción (establece interrupción), si

2 Otras instrucciones de control del procesador

Sin operación

Detener el apagado

Esperar (Esperar) Espera

ESC (Salir)

Bloquear bloqueo

Estas instrucciones pueden controlar el estado del procesador. Ninguno de ellos afecta los códigos condicionales.

. NOP no tiene instrucciones de operación

Esta instrucción no realiza ninguna operación. Su código de máquina ocupa un byte y se usa a menudo para depurar programas.

Para que pueda ser sustituido por otras instrucciones en operaciones formales.

. Instrucción de apagado HLT

Esta instrucción puede detener la máquina y detener el procesador para esperar interrupciones externas y la interrupción finaliza.

Después, podrás continuar con el siguiente procedimiento.

. Esperar Esperar instrucción

Esta instrucción inactiva el procesador. También se puede utilizar para esperar una interrupción externa pero aún regresar después de que finalice la interrupción.

Espera instrucciones para continuar con tu virtud.

Instrucción de escape ESC

Formatear la memoria ESC

Donde mem representa la unidad de almacenamiento y la instrucción ESC envía el contenido de la unidad de almacenamiento al bus de datos. Por supuesto, la instrucción ESC

no permite direccionamiento inmediato de datos y registros. Esta instrucción utiliza un coprocesador para realizar algunas operaciones.

Las instrucciones u operandos se pueden obtener de la memoria. Los coprocesadores (como el 8087) son hardware opcional que aumentan la velocidad.

. Instrucción de bloqueo de bloqueo

Esta instrucción es un prefijo que se puede combinar con otras instrucciones para mantener la señal bloqueada del bus hasta que esta instrucción se combine con ella.

Esta instrucción evita la destrucción de información útil cuando la CPU coopera con otros procesadores.