En lenguaje ensamblador, ax, bx, cx, dx... ¿cuáles son sus nombres completos en inglés y qué significan en chino?
Hay cuatro registros de uso general de 16 bits (AX, BX, CX, DX) y cuatro registros de puntero e índice de 16 bits (BP, SP, SI, DI) en 8086. Cuatro registros de 16 bits registros de segmento de bits (CS, DS, SS, ES), un registro de puntero de instrucción (IP) y un registro de bandera (PSW).
AX BX CX DX es un registro de datos en el registro de propósito general dentro de la CPU. Los registros de datos se usan generalmente para almacenar datos involucrados en operaciones o los resultados de las operaciones. Cada registro de datos tiene 16 bits (es decir, 16 bits binarios), pero los 8 bits altos y bajos se pueden usar como dos registros independientes de 8 bits. Sus 8 bits altos se registran como AH, BH, CH, DH, y los 8 bits bajos se registran como AL, BL,. CL.DL. Este método de uso flexible brinda gran comodidad a la programación y puede procesar datos de 16 bits y de 8 bits.
Además de usarse como registros de uso general, también tienen registros de datos. Modismos respectivos
AX se llama acumulador, que a menudo se usa para almacenar operandos en operaciones aritméticas y lógicas. Además, todas las instrucciones de E/S utilizan el acumulador para transmitir información a la interfaz periférica.
BX se llama registro de dirección base, que a menudo se usa para almacenar la dirección base al acceder a elementos internos.
CX se llama registro de conteo y se usa como contador en instrucciones de operación de bucle y cadena.
DX Llamado registro de datos, la dirección del puerto de E/S se almacena en la instrucción de E/S en el direccionamiento indirecto del registro
Además, al realizar multiplicaciones y divisiones de palabras dobles operaciones, DX y AX se combinan para almacenar un número de longitud de palabra doble (32 bits), en el que DX almacena los 16 bits superiores y AX almacena los 16 bits inferiores.
En 1978, Intel lanzó el 16 bits. Microprocesador de bits 8086. 8086 es un procesador de procesador representativo y varios procesadores posteriores seguirán siendo compatibles con él. La CPU 8086 adopta la tecnología HMOS e integra 29.000 transistores en el chip. Los pines son duales en línea con 40 pines. Tanto los buses internos como los externos son de 16 bits, lo que la convierte en una verdadera CPU de 16 bits. Hay líneas de dirección de 20 bits que pueden direccionar directamente un espacio de 1 M.
Para ser compatible con los microordenadores de 8 bits del mercado, Intel ha lanzado un procesador 8088 mejorado de 8086. Su bus interno es de 16 bits, el bus externo es de 8 bits y la línea de dirección es de 20 bits. El sistema de instrucciones es compatible con el sistema 8086 y es una máquina de casi 16 bits.
Imagen superior: diagrama de bloques estructural interno (imagen) de 8086CPU
Funcionalmente hablando, la CPU se puede dividir en una unidad de interfaz de bus (BIU) y una unidad de ejecución (EU). Unidad):
Unidad de interfaz de bus BIU
BIU es responsable de la transferencia de datos entre la CPU, la memoria y los periféricos, incluida la lectura y escritura de la memoria, la lectura y escritura de la interfaz de E/S, y búsqueda de instrucciones.
BIU se compone de registros de segmento (CS, DS, SS, ES), registro de puntero de instrucciones (IP), sumador de direcciones, registros internos, búfer de cola de instrucciones y lógica de control de E/S.
2. El componente de la unidad de ejecución de instrucciones EU
EU es responsable de la ejecución de las instrucciones. Consta de un grupo de registros generales, un grupo de registros especiales, una unidad de operaciones aritméticas y lógicas (ALU), un registro de bandera (FR) y un registro de bandera (FR). lógica de control interno.
Como se puede ver en lo anterior, BIU es responsable de completar la búsqueda de instrucciones y el acceso a operandos, es decir, todas las operaciones relacionadas con el bus externo de la CPU las completa. La UE es responsable de analizar y ejecutar instrucciones y no necesita estar conectada directamente al bus externo de la CPU. Los datos requeridos y los resultados generados se reciben o transmiten al bus externo a través de la BIU. Las dos unidades, BIU y EU, trabajan juntas en paralelo, de modo que las operaciones de buscar y ejecutar instrucciones se realizan en paralelo, mejorando así en gran medida la eficiencia del trabajo.
El 8086 de la imagen tiene cuatro registros de propósito general de 16 bits (AX, BX, CX, DX), cuatro punteros y registros de índice de 16 bits (BP, SP, SI, DI), cuatro Registros de segmento de 16 bits (CS, DS, SS, ES), un registro de puntero de instrucción (IP) y un registro de bandera (PSW).
Propósito general
Registro
15 - 8 7 - 0
Acumulador (AX) AH AL
Registro base (BX) BH BL
Contador (CX) CH CL
Registro de datos (DX) DH DL
Puntero
y índice
Registro
15 - 0
Puntero de pila (SP) SP
Puntero base (BP) BP
Indexador de origen (SI) SI
Indexador de destino (DI) DI
Control
Registro 15 - 0
Puntero de instrucción ( IP) IP
Registro de bandera (FR) FR
Registro de segmento 15 - 0
Registro de segmento de código (CS ) CS
Datos registro de segmento (DS) DS
Registro de segmento de pila (SS) SS
Registro de segmento adicional (ES) ES
Nota:
Los cuatro registros de propósito general se pueden dividir en dos registros, los 8 bits superiores y los 8 bits inferiores.
Los primeros dos de los cuatro registros de puntero de índice (SP, BP, SI, DI) se denominan "punteros de dirección" y los dos últimos se denominan "registros de índice".
Usos especiales y propiedades implícitas de los registros de propósito general
Usos especiales y propiedades implícitas de los nombres de registros
AX y AL no se pueden utilizar como registros de datos en la entrada e instrucciones de salida Implícitas
Almacenar el multiplicando o producto en la instrucción de multiplicación
Almacenar el dividendo o cociente en la instrucción de división Implícita
AH En el LAHF. instrucción, Usar implícito como registro de destino
AL Usar implícito como acumulador en instrucciones de operación decimal
Usar implícito como acumulador en instrucción XLAT
BX Indirecto Cuando se usa como registro de dirección base en el direccionamiento, no puede ser implícito.
Cuando se usa como registro de dirección base en la instrucción XLAT, es implícito.
CX Cuando se usa como contador en operación de cadena instrucciones e instrucciones LOOP, está implícito
CL se utiliza como contador de números de turno en instrucciones de cambio/rotación y no se puede ocultar
DX se almacena en instrucciones de multiplicación/división de palabras.
El producto El bit alto o el bit alto del dividendo o el resto está implícito
No puede estar implícito cuando se utiliza como registro de dirección en instrucciones de entrada y salida con direccionamiento indirecto
SI se utiliza como registro de índice de origen en instrucciones de operación de cadena. Utilice implícito
Utilice implícito como registro de índice en direccionamiento indirecto, pero no implícito
DI como destino. el registro de índice en las instrucciones de operación de cadena se usa implícito
No se puede ocultar cuando se usa como registro de índice en direccionamiento indirecto
BP Cuando se usa como puntero de dirección base en direccionamiento indirecto, no se puede oculto
SP Cuando se utiliza como pila en operación de pila El puntero está implícito
Nota: En la UE se diseña un registro de bandera de 16 bits para almacenar la palabra de estado del programa PSW (Estado del programa). Palabra). Hay 9 bits válidos definidos en PSW.
Bits de bandera de PSW
OF DF IF TF SF ZF AF PF CF
Nota: El extremo izquierdo representa el bit más alto de PSW, el extremo derecho (CF) representa la posición más baja.
Uso y significado de los bits de bandera en PSW
Uso y significado de los bits de bandera
Bit de control de dirección DF (Direction Flag)
Si se establece DF=1, después de la operación de cadena, las direcciones de los operandos de origen y destino se ajustan en la dirección creciente; si se establece DF=0, las direcciones de los operandos de origen y destino se ajustan en la dirección decreciente;
Bit de control de habilitación de interrupción IF (indicador de habilitación de interrupción)
Si se establece IF=1, la CPU puede responder a interrupciones enmascarables (las interrupciones están activadas si IF=); 0, no está permitido. La CPU responde a interrupciones enmascarables (desactiva las interrupciones).
Bit de control de trampa TF (indicador de trampa)
Si se establece TF=1, la trampa se establecerá durante la operación de la CPU. En este momento, la CPU generará una trampa cada vez. ejecuta una instrucción para interrupciones de un solo paso, los usuarios pueden depurar la ejecución de la instrucción actual en el servicio de interrupción si TF = 0, significa que no se establece ninguna trampa; Este indicador se utiliza principalmente para la depuración del programa en un solo paso.
Bit de indicador de desbordamiento OF (Overflow Flag). Refleja si el resultado de la operación de un número con signo excede el rango que puede representar; el rango de operaciones de palabras es -32768 ~ 32767 y el rango de operaciones de bytes es -128 ~ 127. Si OF=1, significa que el resultado se desborda; OF=0, significa que el resultado no se desborda. Tenga en cuenta que la bandera OF es principalmente para operaciones firmadas.
Bit de bandera de signo SF. Refleja si el bit más significativo (MSB) del resultado de la operación es 0 o 1 para operaciones con signo, refleja si el resultado de la operación es positivo o negativo; Si SF=1, refleja que el bit más significativo del resultado de la operación es 1 (o el resultado es negativo); si SF=0, significa que el bit más significativo es 0 (o el resultado no es negativo);
Bit de bandera cero ZF. Refleja si el resultado de la operación es todo 0. Si ZF = 1, significa que el resultado de la operación es todo 0 (todos los bits son 0); si ZF = 0, significa que el resultado de la operación no es todo 0 (todos los bits son 0);
Bit de bandera auxiliar AF (Auxiliary Flag). Este indicador se utiliza principalmente para el ajuste después de la operación del código BCD. Refleja si hay un acarreo (para la operación de suma) o un préstamo (para la operación de resta) en los cuatro bits inferiores de la operación (es decir, D3 a D4). Si AF = 1, significa que hay acarreo o préstamo; si AF = 0, significa que no hay acarreo ni préstamo.
Bit de indicador de paridad PF. Refleja si el número de unos en el resultado de la operación es un número par. Si PF=1, significa que hay un número par de unos en el resultado de la operación; si PF=0, significa que hay un número impar de unos en el resultado.
Bit de bandera de transporte CF. Refleja si hay un acarreo (para suma) o un préstamo (para resta) en el bit más significativo de la operación (D15 para operación de palabra, D7 para operación de byte). Si CF=1, significa que hay acarreo o préstamo; si CF=0, significa que no hay acarreo ni préstamo. La bandera CF es principalmente para operaciones sin firmar.
Nota: DF, IF y TF son indicadores de control. Los usuarios pueden configurarlos en 0 o 1 mediante instrucciones. Controlando así el estado de la CPU. OF, SF, ZF, AF, PF y CF son indicadores de estado que registran el estado de ejecución del programa y lo determinan al juzgarlos.