2011-05-04 17 views

Respuesta

5

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.

+1

¡Ya veo, gracias! así que, esencialmente, el cálculo de la dirección no utiliza la ALU tradicional de 16 bits (?) – Oxdeadbeef

+1

@ 0xdeadbeef: Correcta, tiene su propia "mini-ALU" dedicada en la BIU. – DarkDust

1

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) 
+0

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

+0

@DarkDust Sí, así es como lo interpreté también. La tuya es más completa, solo intentaba abordar la pregunta directamente. – jonsca

+0

@ DarkDust, jonsca, exactamente :) – Oxdeadbeef

Cuestiones relacionadas