Red de conocimiento informático - Conocimiento sistemático - Una colección completa de instrucciones en lenguaje ensamblador, ¡sea detallada! ! ! !

Una colección completa de instrucciones en lenguaje ensamblador, ¡sea detallada! ! ! !

La mejor respuesta es el conjunto de instrucciones en lenguaje ensamblador IBM-PC

Conjunto de instrucciones de transferencia de datos

MOV

Función: Enviar el operando fuente Proporcionar operando de destino

Sintaxis: MOV operando de destino, operando de origen

Formato: MOV r1, r2

MOV r, m

MOV m, r

MOV r, data

XCHG

Función: Intercambiar los datos de dos operandos

Sintaxis: XCHG

Formato: XCHG r1, r2 XCHG m, r /p>

Sintaxis: PUSH operando POP operando

Formato: PUSH r PUSH M PUSH datos POP r POP m

PUSHF, POPF, PUSHA, POPA

Función: Grupo de instrucciones de pila

Formato: PUSHF POPF PUSHA POPA

LEA, LDS, LES

Función: Obtener dirección para registrarse

Sintaxis: LEA r, m LDS r, m LES r, m

XLAT(XLATB)

Función: Comando de búsqueda de tabla

Sintaxis: XLAT OP2

Formato: ADD r1, r2 ADD r, m ADD m, r ADD r, datos

Indicadores afectados: C , P, A, Z, S, O

SUB, SBB

Función: Instrucción de resta

Sintaxis: SUB OP1, OP2 SBB OP1, OP2

Formato: SUB r1, r2 SUB r , m SUB m, r SUB r, data SUB m, data

Banderas afectadas: C, P, A, Z, S, O

INC, DEC

Función: Sumar o restar uno al valor de OP

Sintaxis: INC OP DEC OP

Formato: INC r /m DEC r/m

Banderas de influencia: P, A, Z, S, O

NEG

Función: Invertir el signo de OP (tomar dos complemento)

Sintaxis: NEG OP

Formato: NEG r/m

Banderas de efecto: C, P, A, Z, S, O

MUL, IMUL

Función: Instrucción de multiplicación

Sintaxis: MUL OP IMUL OP

Formato: MUL r/m IMUL r/m

Afecta banderas: C, P, A, Z, S, O (solo IMUL afecta la bandera S)

DIV, IDIV

Función: Instrucción de división

Sintaxis: DIV OP IDIV OP

Formato: DIV r/m IDIV r/m

CBW, CWD

Función: Instrucción de extensión firmada

Sintaxis: CBW CWD

AAA, AAS, AAM, AAD

Función: Instrucción de ajuste de operación de código BCD no presionado

Sintaxis : AAA AAS AAM AA

D

Banderas de efecto: A, C (AAA, AAS) S, Z, P (AAM, AAD)

DAA, DAS

Función: BCD comprimido Instrucciones de ajuste de código

Sintaxis: DAA DAS

Indicadores de efecto: C, P, A, Z, S

Conjunto de instrucciones de operación de bits

AND, OR, XOR, NOT, TEST

Función: Realizar operaciones lógicas entre BIT y BIT

Sintaxis: AND r/m, r/m/data OR r/ m, r/m/data XOR r/m, r/m/data TEST r/m, r/m/data NOT r/m

Banderas afectadas: C, O, P, Z, S (El dos indicadores C y O se establecerán en 0) La instrucción NOT no afecta ningún bit de indicador

SHR, SHL, SAR, SAL

Función: instrucción Shift

Sintaxis: SHR r/m, data/CL SHL r/m, data/CL SAR r/m, data/CL SAL r/m, data/CL

Banderas de efecto: C, P, Z, S, O

ROR, ROL, RCR, RCL

Función: Instrucción de cambio de rotación

Sintaxis: ROR r/m, data/ CL ROL r /m, data/CL RCR r/m, data/CL RCL r/m, data/CL

Banderas afectadas: C, P, Z, S, O

Flujo del programa conjunto de instrucciones de control

CLC, STC, CMC

Función: Establecer indicador de acarreo

Sintaxis: CLC STC CMC

Bit de indicador: C

CLD, STD

Función: Establecer indicador de dirección

Sintaxis: CLD STD

Bit de indicador: D

CLI, STI

Función: Establecer indicador de interrupción

Sintaxis: CLI STI

Bit de indicador: I

CMP

Función: Comparar los valores de OP1 y OP2

Sintaxis: CMP r/m, r/m/data

Banderas: C, P, A, Z, O

JMP

Función: saltar a la dirección especificada para su ejecución

Sintaxis: dirección JMP

JXX

Función: cuando se cumplen condiciones específicas, salta a la dirección especificada para su ejecución

Sintaxis: dirección JXX

Nota:

A: ARRIBA, cuando C= 0 , establecido cuando Z=0

B: BELOW, establecido cuando C=1

C: CARRY, establecido cuando 弁 CXZ: Cuando el valor del registro CX es 0 (CERO ) Establecido

E: IGUAL, establecido cuando Z=1

G: MAYOR (mayor que), establecido cuando Z=0 y S=0

L : LESS (menor que), verdadero cuando S no es cero

N: NOT (condición opuesta), debe usarse junto con otros símbolos

O: OVERFLOW, verdadero cuando O=1

P: PARIDAD, establecida cuando P=1

PE: PARIDAD PAR, establecida cuando P=1

PO: PARIDAD IMPAR, establecida cuando P=0

S: SIGN, verdadero cuando S=1

Z: CERO, verdadero cuando Z=1

LOOP

>

Función: Conjunto de instrucciones de bucle

Sintaxis: Dirección LOOP

LOOPE(Z)

Dirección Dirección LOOPNE(Z)

Bit de bandera: Ninguno

CALL, RET

Función: llamada de subrutina, instrucción de retorno

Sintaxis: CALL dirección RET RET n

Bit de bandera: Ninguno

INT, IRET

Función: Interrumpir llamada y devolver instrucción

Sintaxis: INT n IRET

Bit de bandera: Al ejecutar INT, la CPU automáticamente enviará el valor del registro de bandera a la pila, y al ejecutar IRET, el valor de la bandera en la pila volverá al registro

Conjunto de instrucciones de operación de cadena

MOVSB, MOVSW, MOVSD

Función: Comando de transferencia de cadena

Sintaxis: MOVSB ​​​​MOVSW MOVSD

Bit de bandera: Ninguno

CMPSB , CMPSW, CMPSD

Función: Instrucción de comparación de cadenas

Sintaxis: CMPSB CMPSW CMPSD

Banderas: C, P, Z, S, O

SCASB, SCASW

Función: Comando de búsqueda de cadenas

Sintaxis: SCASB SCASW

Banderas: C, P, Z, S , O

LODSB, LODSW, STOSB, STOSW

Función: Comando de carga o almacenamiento de cadenas

Sintaxis: LODSB LODSW STOSB STOSW

Bit de bandera: Ninguno

REP, REPE, REPNE

Función: Repetir conjunto de instrucciones de prefijo

Sintaxis: Instrucción REP S Instrucción REPE S Instrucción REPNE S

Bit de bandera: Depende de la instrucción S

Para IBM PC, tiene su sistema de instrucciones, que incluye: instrucciones de transferencia de datos, instrucciones de procesamiento de cadenas, instrucciones aritméticas, instrucciones de movimiento de control, instrucciones lógicas, procesador instrucciones de control.

Aquí presentaremos brevemente los tipos de instrucción y las descripciones de las instrucciones. Si tiene algún requisito para formatos y aplicaciones de instrucción específicos, comuníquese con amay y los actualizaremos.

1) Instrucciones de transferencia de datos: Responsable de transferir datos, direcciones o datos inmediatos a registros o unidades de almacenamiento.

Descripción de la instrucción del tipo de instrucción de transferencia de datos

Instrucciones generales de transferencia de datos MOV (transferencia), PUSH (empujar hacia la pila), POP (sacar de la pila), XCHG (intercambio)

Instrucciones especiales de transferencia del acumulador IN (comando de entrada), OUT (comando de entrada)

Instrucciones de transferencia de dirección LEA (dirección efectiva a registrar), LDS (puntero a registro y DS), LES (puntero al registro) y ES)

Las instrucciones de transferencia del registro de bandera LAHF (la bandera se envía a AH), SAHF (AH se envía al registro de bandera), PUSHF (la bandera se envía a la pila), POPF (la bandera sale de la pila)

2 ) Instrucciones aritméticas: se utilizan para realizar operaciones aritméticas.

Descripción de la instrucción del tipo de instrucción aritmética

Instrucciones de suma ADD (suma), ADC (suma con acarreo), INC (sumar 1)

Instrucción de resta SUB ( Resta ), SBB (resta con préstamo), DEC (resta 1), NEG (complemento), CMP (comparar)

Instrucciones de multiplicación MUL (multiplicación sin signo), IMUL (multiplicación con signo) )

Instrucciones de división DIV (división sin signo), IDIV (división con signo), CBW (byte a palabra), CWD (palabra a palabra doble)

3) Instrucciones lógicas: realiza operaciones lógicas sobre palabras o bytes.

Instrucciones de tipo instrucción lógica

Instrucciones de operación lógica AND (AND lógico), OR (OR lógico), NOT (negación lógica), XOR (OR exclusivo), TEST (prueba)

Instrucciones de movimiento SHL (desplazamiento lógico a la izquierda), SAL (desplazamiento aritmético a la izquierda), SHR (desplazamiento lógico a la derecha), SAR (desplazamiento aritmético a la derecha), ROL (girar a la izquierda), ROR (girar a la derecha), RCL ( rotar a la izquierda con carry), RCR (desplazar a la derecha con carry)

4) Instrucciones de procesamiento de cadenas: procesa la cadena de datos almacenada en la memoria.

Descripción de la instrucción del tipo de instrucción de procesamiento de cadenas

Instrucciones MOVS (transferencia de cadenas), CMPS (comparación de cadenas), SCAS (escaneo de cadenas), LODS (obtener de cadena), STOS (almacenar cadena )

5) Instrucciones de transferencia de control: se utilizan para controlar el flujo de ejecución del programa.

Descripción de la instrucción del tipo de instrucción de transferencia de control

Instrucción de transferencia incondicional JMP (transferencia entre segmentos e intrasegmentos)

Instrucción de transferencia condicional JZ (el resultado es 0 ( o igual a ), JS (saltar si el resultado es negativo), JNS (saltar si el resultado es positivo), JO (saltar si se desborda), JNO (saltar si no se produce desbordamiento), JP (saltar si el bit de paridad es 1 ), JNP (saltar si el bit de paridad es 1), JNP (saltar si el bit de paridad es 1) Si el bit es 0, bifurcar)

Instrucciones de bucle LOOP (instrucción de bucle), LOOPPZ/LOOPE ( instrucción de bucle cuando es 0 o igual), LOOPNZ/LOOPNE (instrucción de bucle cuando no es 0 o igual)

Instrucciones de subrutina CALL (instrucción de llamada), RET (instrucción de retorno)

Instrucciones de interrupción INT (interrupción), INTO (interrupción si se produce un desbordamiento), RIET (regreso de la interrupción)