sé que usa dirección física = registro de segmento < < 4 + registro de desplazamiento. Aunque estos dos registros son de 16 bits, ¿cómo puede manejar 8086 una operación de más de 20 bits?cómo calcula la CPU la dirección de 20 bits en modo real
Respuesta
la unidad de interfaz de bus se compone de registros de segmento, sumador para generar dirección de 20 bits y cola de captación previa de instrucciones. Una vez que esta dirección se envía desde BIU, los bytes de instrucción y datos se extraen de la memoria y completan una cola de 6 primeros bytes First In First Out.
Consulte un documento llamado "8086_Internal_Block_diagram_enotes.pdf", que se puede encontrar fácilmente a través de Google. También vea this document, la sección sobre la Unidad de Interfaz de Bus.
Por lo tanto, el procesador genera estas direcciones de 20 bits "a pedido" con un registro interno de 20 bits dedicado, si lo desea.
Cuando desplaza un número de 16 bits 4 lugares hacia la izquierda, básicamente está creando un número de 20 bits. El desplazamiento indica qué tan lejos entrarás en ese rango. Vea el Wikipedia article on Real mode addressing.
Ejemplo:
0x0001 << 4 -> 0x00010 (5 sets of 4 bits in each hex digit -> 20 bits)
Supongo que la pregunta fue más a lo largo de esto: dado que todos los registros son de 16 bits, ¿cómo puede el procesador manejar un valor de 20 bits que es demasiado grande para un registro normal. – DarkDust
@DarkDust Sí, así es como lo interpreté también. La tuya es más completa, solo intentaba abordar la pregunta directamente. – jonsca
@ DarkDust, jonsca, exactamente :) – Oxdeadbeef
- 1. ¿Cómo se calcula el hashCode() desde la dirección del objeto?
- 2. La dirección de la función no es la dirección de código real
- 3. Uso de la CPU en el modo por lotes superior
- 4. Cómo rastrear la dirección IP real detrás del proxy
- 5. ¿Qué es la "UE" en la arquitectura x86? (calcula la dirección efectiva?)
- 6. ¿Cómo se calcula el factorial inverso de un número real?
- 7. ¿Calcula la forma más corta de rotar, derecha o izquierda?
- 8. ¿Cómo se calcula la AIC en stepAIC
- 9. ¿Es posible utilizar registros/instrucciones de 32 bits en modo real?
- 10. Calcula la cobertura CMYK en PDF
- 11. ¿Cómo sabe el kernel si la CPU está en modo de usuario o en modo de keel?
- 12. localhost vs dirección IP real
- 13. ¿Calcula el ángulo de dirección desde dos vectores?
- 14. Cómo se accede a un solo byte de la memoria mediante la CPU en una memoria de 32 bits y en el procesador de 32 bits
- 15. ¿Cómo se calcula la combinación y la permutación en R?
- 16. ¿Cómo obtener la temperatura de la CPU?
- 17. Control USB en modo real x86
- 18. ¿Alguna CPU del mundo real no usa IEEE 754?
- 19. ¿Cómo crear robots de la vida real?
- 20. determinar la arquitectura de la CPU en D
- 21. ¿Cómo se calcula el rango de IP cuando se proporciona la dirección IP y la máscara de red?
- 22. Cómo rastrear la infracción de acceso "en la dirección 00000000"
- 23. Modo real, interrupción reemplazo de vector Crashing
- 24. Cómo utilizar PyCharm en el modo de 32 bits
- 25. ¿cómo se calcula la complejidad de la contraseña?
- 26. ¿Cómo escalo un mapa de bits en tiempo real sin leer primero toda la imagen?
- 27. ¿Cómo ejecuto un VBScript en modo de 32 bits en una máquina de 64 bits?
- 28. Calcula la velocidad con javascript
- 29. Código de C++ para la carga de la CPU y la temperatura de la CPU
- 30. Cómo deshabilita la ventana de la CPU en Delphi 7
¡Ya veo, gracias! así que, esencialmente, el cálculo de la dirección no utiliza la ALU tradicional de 16 bits (?) – Oxdeadbeef
@ 0xdeadbeef: Correcta, tiene su propia "mini-ALU" dedicada en la BIU. – DarkDust