Saltar al contenido principal
LibreTexts Español

5.1: La Unidad Extender Signo

  • Page ID
    80649
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    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.

    Figura 5-1: La unidad de extensión de señal

    Screen Shot 2020-07-03 a las 12.19.22 PM.png


    This page titled 5.1: La Unidad Extender Signo is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by Charles W. Kann III via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.