Galería de mapas mentales Capítulo 4 Sistema de comando
Este es un mapa mental sobre el Sistema de instrucción del Capítulo 4, incluido el sistema de instrucción, el modo de direccionamiento de las instrucciones, la representación del código del programa a nivel de máquina, etc.
Editado a las 2024-01-16 15:52:47,Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Capítulo 4 Sistema de comando
sistema de comando
sistema de comando
El sistema de instrucciones es la parte central de la arquitectura del conjunto de instrucciones (ISA) define completamente la interfaz entre el software y el hardware.
Formato básico de instrucciones.
instrucción de dirección cero
un comando de dirección
Dos instrucciones de dirección
Tres instrucciones de dirección
Cuatro instrucciones de dirección
Formato de instrucción de código de operación de longitud fija
Los códigos de operación de longitud fija son muy beneficiosos para simplificar el diseño del hardware de la computadora y mejorar la velocidad de reconocimiento y decodificación de instrucciones.
Formato de instrucción de código de operación extendido
El tipo de operación de la instrucción.
transmisión de datos
Transferencia entre registros (MOV)
La unidad de memoria lee datos en el registro de la CPU (LOAD)
El registro de la CPU escribe datos en la unidad de memoria (STORE)
Operaciones aritméticas y lógicas.
Sumar (AÑADIR), restar (SUB), comparar (CMP), multiplicar (MUL), dividir (DIV), sumar 1 (INC), restar 1 (DEC), Y (Y), o (O), negar (NO ), OR exclusivo (XOR)
operación de turno
Desplazamiento aritmético, desplazamiento lógico, desplazamiento circular.
instrucciones de control del programa
Instrucciones de control de bucle
BUCLE L1. Cada vez que se ejecuta esta instrucción, el número de bucles en el contador de bucles ECX se reduce en 1 y luego se determina si ECX es 0. Si no es 0, el programa irá a L1 para continuar con la ejecución; El bucle finalizará y se ejecutará la siguiente instrucción de la instrucción LOOP.
instrucción de transferencia
transferencia incondicional
transferencia condicional
Utilice JZ y JNZ para representar la ramificación cuando = y ≠, y utilice JGE/JAE, JG/JA, JLE/JBE y JL/JB para representar la ramificación cuando ≥, >, ≤ y < de números con signo/sin signo respectivamente.
Instrucciones de llamada y devolución de subrutinas
instrucciones de llamada de subrutina
La dirección de la siguiente instrucción de la instrucción del rotor en el programa principal se denomina punto de interrupción, y el punto de interrupción es la dirección de retorno cuando el subprograma regresa al programa principal.
instrucción de llamada en x86, instrucción jal en MIPS
Comando de retorno
instrucción ret en x86, instrucción jr $ra en MIPS.
La diferencia entre instrucciones de llamada e instrucciones de transferencia
Las instrucciones de transferencia se transfieren dentro del mismo programa, mientras que las instrucciones del rotor se transfieren entre diferentes programas.
No es necesario que la instrucción de transferencia regrese a la posición original, mientras que no es necesario que la instrucción del rotor regrese a la posición original.
Las instrucciones del rotor y las instrucciones de devolución suelen ser incondicionales, mientras que las instrucciones de transferencia condicional requieren condiciones.
Operaciones de entrada y salida
Cuando el dispositivo externo y la memoria principal adoptan un modo de direccionamiento unificado, no es necesario configurar instrucciones de E/S dedicadas y las instrucciones de acceso a la memoria se pueden utilizar para acceder directamente al dispositivo externo.
instrucciones de manipulación de pila
Instrucciones de procesamiento de cadenas
Modo de direccionamiento de instrucciones
Direccionamiento de instrucciones y direccionamiento de datos.
Direccionamiento de instrucciones (buscar la dirección de la siguiente instrucción a ejecutar se llama direccionamiento de instrucciones)
direccionamiento secuencial
La dirección de la siguiente instrucción se forma sumando uno a la PC, es decir, EA=(PC) “1” de la dirección de la siguiente instrucción. Entre ellos, "1" es el número de unidades de almacenamiento ocupadas por la instrucción actual.
saltar direccionamiento
Dirección absoluta (obtenida directamente del marcador)
Dirección relativa (desplazamiento relativo a la dirección de instrucción actual)
Direccionamiento de datos (buscar la dirección de datos de esta instrucción se llama direccionamiento de datos)
Métodos comunes de direccionamiento de datos
direccionamiento implícito
Direccionamiento inmediato (número)
MOV EAX,2008H
direccionamiento directo
MOV EAX,[2008H]
direccionamiento indirecto
MOV EAX,@2008H @ es el indicador de direccionamiento indirecto
Registrar direccionamiento
MOV EAX, ECX
registrar direccionamiento indirecto
MOV AL,[EBX]
direccionamiento relativo
EA=PC 1D
direccionamiento base
Utilice registros especiales: el registro de dirección base utiliza un método de direccionamiento implícito y no es necesario indicarlo explícitamente en la instrucción. El campo de dirección formal en la instrucción proporciona el valor de compensación involucrado en el direccionamiento base. Uso de registros generales: debe agregar un campo de número de registro para indicar el número del registro de dirección base utilizado.
direccionamiento indexado
MOV EAX,32[ESI] # Agregue el desplazamiento 32 al valor del registro de índice ESI para formar una dirección para acceder a la memoria principal y envíe el resultado a EAX.
direccionamiento de pila
pila de memoria
pila de registro
representación de código a nivel de máquina de un programa
Formato de instrucciones de montaje
Comparación de comandos de formato AT&T y comandos de formato Intel
Instrucciones comunes (formato Intel)
Las etiquetas utilizadas para los operandos representan registros, memoria y constantes respectivamente.
<reg>: representa cualquier registro. Si hay un número después, especifique su número de dígitos.
<mem>: representa la dirección de memoria
<con>: representa una constante de 8, 16 o 32 bits
instrucciones de transferencia de datos
instrucción mov
instrucción de empuje
comando emergente
Instrucciones de operación aritmética y lógica.
comando jmp
Preste atención a distinguir entre jmp (salto incondicional) y jcondition (instrucciones de salto condicional)
instrucción de condición j
comando cmp/prueba
Las instrucciones cmp y de prueba generalmente se usan junto con la instrucción jcondition.
instrucción de llamada/retirada
Instrucciones comunes de operaciones aritméticas
Instrucciones de operación lógica comunes
Representación a nivel de máquina de llamadas a procedimientos.
Supongamos que el proceso P (llamador) llama al proceso Q (llamado). Los pasos de ejecución de la llamada al procedimiento son los siguientes.
1) P coloca los parámetros de entrada (parámetros reales) donde Q pueda acceder a ellos.
2) P almacena la dirección del remitente en un lugar específico y luego transfiere el control a Q. instrucción de LLAMADA
3) Q guarda la ubicación de P (el contenido del registro general) y asigna espacio para sus propias variables locales no estáticas.
4) Ejecutar el proceso Q.
5) Q restaura la escena de P, coloca el resultado devuelto en algún lugar al que P pueda acceder y libera el espacio ocupado por las variables locales.
6) O saca la dirección del remitente y transfiere el control a P. instrucción RET
Instrucción de llamada de función: llamar <nombre de función>
①Empuje el antiguo valor de IP en la pila (guárdelo en la parte superior del marco de la pila de la función) ② Establezca el nuevo valor de IP y transfiera incondicionalmente a la primera instrucción de la función llamada
Instrucción de retorno de función: ret
Encuentre el valor de IP anterior (es decir, la dirección de retorno) en la parte superior del marco de la pila de la función, sáquelo de la pila y restaure el registro de IP.
Rango de marco de pila de marcas: registros EBP, ESP
ebp: apunta al "fondo" del marco de pila actual
esp: apunta a la "parte superior" del marco de pila actual
El acceso a los datos dentro del marco de la pila se basa en ebp y esp.
¿Cómo acceder al marco de la pila?
¿Cómo cambiar los marcos de la pila cuando se llama a una función?
"Procesamiento de rutina" al comienzo de cada función
push ebp #Guarde la dirección base del marco de pila de la función de capa anterior (valor anterior de ebp)
mov ebp,esp #Establece la dirección base del marco de pila de la función actual (nuevo valor de ebp)
¿Cómo cambiar los marcos de la pila cuando regresa una función?
"Procesamiento de rutina" antes de cada función ret
Nota: La parte inferior de cada marco de pila se utiliza para guardar la dirección base del marco de pila anterior.
mov esp, ebp #Deje que esp apunte a la parte inferior del marco de pila actual
pop ebp # Extraiga el elemento señalado por esp de la pila y escríbalo en el registro ebp
¿Qué contenido puede estar contenido en un marco de pila?
Representación a nivel de máquina de declaraciones seleccionadas
instrucción de transferencia incondicional
jmp<dirección> #PC transferido incondicionalmente a <dirección> jmp 128 #<dirección> se puede dar como una constante jmp eax #<dirección> puede provenir de un registro jmp[999] #<dirección> puede provenir de la memoria principal jmp NEXT #<dirección> se puede anclar con "etiqueta"
El principio subyacente de la instrucción cmp
Básicamente, realiza una operación de resta a-b y genera bits de bandera OF, ZF, CF, SF.
je<dirección> #Si a==b, salta, ZF==1?
jne<dirección> #Si a!=b, saltar, ZF==0?
jg<dirección> #Si a>b, salta, 2F==0 && SF==OF?
jge<dirección> #Si a>=b, salta, SF==OF?
jl<dirección> #Si a<b, salta, SF!=OF?
jle<dirección> #Si a<=b, salta, SF!=OF||ZF==1?
Representación a nivel de máquina de declaraciones de bucle
Implementación de bucles utilizando instrucciones de transferencia condicional.
Utilice instrucciones de bucle para implementar el bucle
Conceptos básicos de CISC y RISC.
Computadora con sistema de instrucción complejo (CISC)
caracteristica principal
El sistema de mando es complejo y enorme.
La longitud de la instrucción no es fija, existen muchos formatos de instrucción y muchos modos de direccionamiento.
No hay restricciones sobre las instrucciones que pueden acceder a la memoria.
La frecuencia de uso de varias instrucciones varía mucho.
El tiempo de ejecución de varias instrucciones varía mucho y la mayoría de las instrucciones requieren múltiples ciclos de reloj para completarse.
La mayoría de los controladores utilizan control de microprograma.
Es difícil generar programas de código objeto eficientes con compilación optimizada.
La mayoría de ellos pueden lograr compatibilidad de software, es decir, las máquinas de alta gama contienen todas las instrucciones de las máquinas de gama baja y se pueden ampliar.
Computadora con sistema de instrucción reducida (RISC)
caracteristica principal
Seleccione algunas de las instrucciones simples más utilizadas. Las funciones de las instrucciones complejas se realizan mediante una combinación de instrucciones simples.
La longitud de la instrucción es fija, hay pocos tipos de formatos de instrucción y hay pocos tipos de modos de direccionamiento.
Sólo las instrucciones Cargar/Almacenar (buscar/almacenar) acceden a la memoria, y las operaciones de otras instrucciones se realizan entre registros.
La cantidad de registros de uso general en la CPU es bastante grande
RISC debe utilizar tecnología de canalización de instrucción y la mayoría de las instrucciones se completan dentro de un ciclo de reloj.
Basado principalmente en control de cableado físico, uso nulo o menor de control de microprograma
Preste especial atención al trabajo de optimización de la compilación para reducir el tiempo de ejecución del programa.
La mayoría de las máquinas RISC no son compatibles con máquinas más antiguas.
Comparación de CISC y RISC