5.1: La Unidad Extender Signo
- Page ID
- 80649
Los valores inmediatos que pueden formar parte de una instrucción son 8 bits, y se pueden usar como entrada a la ALU. Sin embargo, la ALU acepta entradas que son de 16 bits. Por lo tanto, los valores inmediatos que se pasan a la CPU deben expandirse para llenar 16 bits. La pregunta es cómo rellenar los 8 bits altos al expandir los valores inmediatos de 8 a 16 bits.
Recuerde que todos los valores inmediatos pasados a la CPU son enteros; el bit superior (más a la izquierda) del valor determina el signo. Si el número de complemento del 2 es positivo, los 0 a la izquierda no tienen ningún efecto sobre el número. Por ejemplo, 0101 2 = 0000 0101 2 = 5 10. En un número de complemento negativo de 2, los 1s principales no tienen ningún efecto sobre el número. Así 1011 2 = 1111 1011 2 = -5 10. Así, para extender un entero el bit más a la izquierda se extiende a los nuevos dígitos binarios. Esto es lo que está haciendo la unidad de extensión de signo, extendiendo el bit 7 a las posiciones 8-15 para traducir el entero de 8 bits en un entero de 16 bits.