Red de conocimiento informático - Conocimiento sistemático - ¿Cómo realizar un desplazamiento lógico a la izquierda de 32 bits en lenguaje ensamblador?

¿Cómo realizar un desplazamiento lógico a la izquierda de 32 bits en lenguaje ensamblador?

Utilice desplazamiento a la izquierda con redondeo, es decir, RCL

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

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.