¿Cómo realizar un desplazamiento lógico a la izquierda de 32 bits en lenguaje ensamblador?
Desplaza a la izquierda el bit más alto del operando a CF y desplaza a la izquierda el contenido original en CF al bit más bajo del operando
Primero use RCL para cambiar el bit bajo y luego use RCL para cambiar el bit alto a la derecha y obtenga el comentario:
Si usa AX y DX para almacenar estos datos de 32 bits, AX es el bit alto bit
ADD AX= 111100001111110000B DX=1111001100111100BAX=111100001111110000B DX=1111001100111100B
ADD AX, 0 CF se borra; de lo contrario, el bit más bajo puede ser 1 al desplazarse hacia la izquierda p>
RCL DX, 1
; DX=10011001100110011000B
; DX=1001100110011000B
;; Cambie el 0 en CF al bit más bajo, cambie el 1 en el bit más alto a CF y mueva los otros bits a la izquierda
RCL AX, 1
después; ejecución 1110000111100001B
; el 1 original desplazado desde el bit más alto de DX se desplaza al bit más bajo de AX a través de CF
; esto logra un cambio de 32 bits.
============================================ = ========================
Uso detallado de RCL:
Desplaza RCL recursivamente hacia la izquierda (por llevando Girar a la izquierda)
Formato de ensamblaje de la instrucción: RCL dst, cnt
Función básica de la instrucción: cada vez que el operando se desplaza hacia la izquierda, el bit más alto del operando se mueve a CF, CF's El contenido se mueve al bit más bajo del operando.
Formato de ensamblaje de instrucciones: RCL dst, cnt
Función básica: RCL mueve cíclicamente el registro o el operando de memoria especificado por dst junto con el indicador de acarreo CF hacia la izquierda, el número de movimientos se especifica m.
Especifique los modos de direccionamiento admitidos: el operando de destino dst puede ser cualquier modo de direccionamiento excepto el modo de direccionamiento inmediato. Cuando el número de movimientos (o número de dígitos) cnt = 1, puede escribir 1 directamente en la instrucción, y cuando cnt> 1, cnt debe colocarse en el registro CL.
El impacto de la instrucción en el bit de bandera: CF=el valor movido.
OF=1 Cuando cnt=1, el valor del bit más alto permanece sin cambios después del movimiento.
Cuando OF=0 cnt=1, el valor del bit más alto cambia después del movimiento.
Los flags SF, ZF y PF no se ven afectados.