This video explains logical shift operations (specifically left and right shifts) in the context of the ARM architecture. The video details how these operations function, their uses in multiplication and division, and provides examples illustrating their application.
aire m tiene un mecanismo interno llamado caja de desplazamiento este dispositivo mueve los bits en una palabra hacia la izquierda o hacia la derecha la mayoría de los microprocesadores tienen instrucciones independientes que le permiten realizar esto directamente sin embargo el aire m solo permite este movimiento como parte de otras instrucciones es un proceso significativo porque mover bit hacia la izquierda o hacia la derecha puede ser una forma simple de multiplicar y dividir números rápidamente objetivo comprender el funcionamiento de las operaciones de desplazamiento lógico conocer el uso del desplazamiento lógico junto a otras instrucciones las operaciones de desplazamiento básicamente mueven los bits en un registro hacia la izquierda o hacia la derecha llenando los vacíos con ceros y unos esto es equivalente a multiplicar y dividir por potencias de 2 esto lleva a la pregunta porque las operaciones de cambio y rotación no son instrucciones reales esto implicara las cosas en realidad es todo lo contrario se puede realizar un cambio o una rotación al mismo tiempo que cualquier instrucción de procesamiento de datos de estado a rm aumentando considerablemente la velocidad y proporcionando un código más denso hay tres tipos de desplazamiento que se pueden realizar lógicos aritméticos y rotaciones rotar es el único tipo que no tiene una función aritmética se incluye únicamente para mover bits el desplazamiento lógico se utiliza para realizar multiplicaciones desplazamiento a la izquierda y divisiones desplazamiento a la derecha con números sin signo desplazamiento a la izquierda l s l ls el desplazamiento lógico a la izquierda es una multiplicación por 2 elevado a la n donde n es la cantidad de vida desplazado se puede usar para hacer multiplicaciones simples pero también cálculos más complicados en la tabla de la diapositiva vemos como un solo desplazamiento lógico a la izquierda l se mueve los bits en un dato de 32 bits en un ls l el bit más significativo de 31 se descarta del dato y entra en la bandera de acarreo y el hueco hecho por el bid menos significativo de 0 al desplazarse a b1 se llena con un cero considera el valor binario de un solo by 0 0 0 1 0 0 0 1 el decimal esto es 17 si realizamos un desplazamiento lógico en este número una posición a la izquierda ls el numeral 1 obtenemos 0 0 1 0 0 0 1 0 que es 34 efectivamente hemos duplicado o multiplicado el número por 2 elevado a la cantidad de posiciones desplazadas en este caso 2 elevado a la 1 que es igual a 2 esto implica que descartamos el dígito más significativo y agregamos un 0 en el bit menos significativo este es un ejemplo simplificado de un solo by en aire m se usan 4 by por lo que de esta manera la palabra completa se desplaza a la izquierda el bit que estaba en b 7 pasa al siguiente by y algo que efectivamente es b 8 y así sucesivamente el bid que se desplaza en la parte superior el 31 se mueve a la bandera de acarreo esta se puede probar para ver si hay un desbordamiento en la multiplicación de números como se mencionó a rm no tiene instrucciones de desplazamiento independientes pero las implementa como un complemento del operando 2 para usar dentro de otras instrucciones y afectan a los 32 by completo del registro especificado veamos lo siguiente ejemplo tenga en cuenta la estructura de la sintaxis para esto en la primera línea cargamos el valor de prueba 17 en el registro r 1 en la siguiente línea el operando 1 es el destino del resultado r2 y el ls l se realiza en operando 2 r 1 como el desplazamiento es 1 realmente se multiplica el registro r 1 por 2 elevado a la primera potencia lo que resulta 17 por 2 en la siguiente línea el desplazamiento es de 2 posiciones por lo que el valor de r1 se está multiplicando por 2 elevando al cuadrado en las últimas dos líneas se muestra cómo utilizar el desplazamiento con la instrucción de la instrucción sin desplazamiento y r-5 r4 r4 notaría como resultado r 5 igual 2 más 2 aplicando desplazamiento tenemos que era 5 va a ser igual a 2 más 2 por 8 aquí el cambio lógico se da como un valor inmediato pero también podría haberse especificado en un registro lo que lo hace disponible para su modificación se puede usar un valor de 0 a 31 en un comando de desplazamiento recuerde que en los desplazamientos los nuevos espacios se llenarían con 0 y la bandera de acarreo reflejaría el valor del último bit cayendo fuera de v 31 todos los otros movidos están perdidos esto significa que la multiplicación solo sigue siendo cierta siempre que no perdamos ningún bit singh significativo por lo tanto para grandes números se debe tener cuidado que el resultado debe caber dentro de 32 bits esta regla de multiplicación se rompe si estuviéramos usando números en complemento a 2 recuerde que el desplazamiento lógico trabaja solamente sobre números sin signos desplazamiento a la derecha lsr l ese desplazamiento lógico a la derecha es similar a ls l lsr es una operación de desplazamiento y es caliente a dividir por 2 elevado a la n donde n es la cantidad de vida que se han desplazado desplaza el valor a la derecha por la cantidad especificada rellenando con ceros el desplazamiento lógico a la derecha el s er afecta a los beats en una palabra de datos el bit más significativo de 31 se mueve a la derecha colocando un cero en su lugar el beat menos significativo de 0 cae en la bandera de acarreo el efecto de hacer es dividir el número entre una potencia de dos en nuestro ejemplo anterior pero ahora comenzamos comenzamos con 34 y realizamos un lsr numeral 1 para volver a nuestro valor original de 17 aquí se dibuja un cero en el extremo superior de 31 y cualquier valor que caiga a la derecha de 0 se lleva a la bandera de acarreo al igual que con el sl la bandera acarreó se usa para capturar lo que se está cayendo por lo que se puede probar si es necesario los ejemplos de letras ontológico a la derecha son similares a los que ya hemos visto con el desplazamiento lógico a la izquierda note ahora se están realizando divisiones entre potencias de 2 cambias tus pensamientos y cambiarás tu mundo hasta la próxima