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 p>
Formato: SUB r1, r2 SUB r , m SUB m, r SUB r, data SUB m, data
Banderas afectadas: C, P, A, Z, S, O p>
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 p>
Afecta indicadores: C, P, A, Z, S, O (solo IMUL afecta el indicador S)
DIV, IDIV
Función: Instrucción de división p>
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 comprimido
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 de desplazamiento
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 cumple una condición específica, 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 p>
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 p>
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 comandos y las descripciones de los comandos. Si tiene algún requisito para aplicaciones y formatos de comandos específicos, comuníquese con amay y se actualizarán.
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)