viernes, 3 de octubre de 2008

Instrucciones ( VII ) Lógica

Las instrucciones de lógica son operaciones que se procesan a nivel de bit. Estas son: not , and , or , xor , rol , ror , rcl , rcr , sal , shl , sar , shr , shld , shrd , bswap , test


NOT Realiza el complemento a uno del operando destino, invirtiendo cada uno de sus bits. Los indicadores no resultan afectados

  • not al ;si AL era 11110000 ahora será 00001111

AND Realiza una operación de Y lógico entre el operando origen y destino quedando el resultado en el destino. Son válidos operandos byte o palabra, pero ambos del mismo tipo.

  • and ax,bx

OR Realiza una operación O logico a nivel de bits entre los dos operandos, almacenándose después el resultado en el operando destino

  • or ax,bx

XOR Operación OR exclusivo a nivel de bits entre los operandos origen y destino almacenándose el resultado en este último.

  • xor ax,dx

ROL Rota a la izquierda los bits del operando destino el número de bits especificado en el segundo operando, que puede ser 1 ó CL previamente cargado con el valor del número de veces.

  • rol dx,cl
  • rol ah,1

ROR Lo mismo que rol pero hacia la derecha

  • ror dx,cl
  • ror ah,1

RCL Rotar a la izquierda los bits del operando destino junto con el indicador de acarreo CF el número de bits especificado en el segundo operando. Si el número de bits a desplazar es 1, se puede especificar directamente, en caso contrario el valor debe cargarse en CL y especificar CL como segundo operando. No es conveniente que CL sea mayor de 7, en bytes; ó 15, en palabras.

  • rcl ax,1
  • rcl al,cl
  • rcl di,1

RCR lo mismo que rcl pero a la derecha

  • rcr ax,1
  • rcr al,cl
  • rcr di,1

SAL ó SHL Desplaza a la izquierda los bits del operando el número de bits especificado en el segundo operando que debe ser CL si es mayor que 1 los bits desplazados

  • shl al,1 ; traslada hacia la izquierda un bit el contenido del registro AL
  • shl byte [bx],1 ; traslada hacia la izquierda un bit el contenido de [BX]
  • shl ax,cl ; traslada hacia la izquierda las veces que contenga CL
  • shl word [bx],cl ; traslada hacia la izquierda las veces que contenga [BX]

SAR Desplaza a la derecha los bits del operando destino el número de bits especificado en el segundo operando. Los bits de la izquierda se rellenan con el bit de signo del primer operando. Si el número de bits a desplazar es 1 se puede especificar directamente, si es mayor se especifica a través de CL.

  • sar ax,cl
  • sar bp,1

SHR Desplaza a la derecha los bits del operando destino el número de los bits especificados en el segundo operando. Los bits de la izquierda se llena con cero. Si el número de bits a desplazar es 1 se puede especificar directamente en el caso en que no ocurra se pone el valor en CL.

  • shr ax,cl
  • shr cl,1

SHLD shifts bits of the destination operand to the left by the number of bits specified in third operand, while shifting high order bits from the source operand into the destination operand on the right. The source operand remains unmodified. The destination operand can be a word or double word general register or memory, the source operand must be a general register, third operand can be an immediate value or the CL register.

  • shld ax,bx,1 ; traslada hacia la izquierda un bit el contenido del registro AX
  • shld [di],bx,1 ; traslada hacia la izquierda un bit el contenido de [di]
  • shld ax,bx,cl ; traslada hacia la izquierda AX las veces que contenga CL
  • shld [di],bx,cl ; traslada hacia la izquierda [di] las veces que contenga CL

SHRD lo mismo que shld pero desplazando a la derecha

  • shrd ax,bx,1 ; traslada hacia la derecha un bit el contenido del registro AX
  • shrd [di],bx,1 ; traslada hacia la derecha un bit el contenido de [di]
  • shrd ax,bx,cl ;traslada hacia la derecha AX las veces que contenga CL
  • shrd [di],bx,cl ; traslada hacia la derecha [di] las veces que contenga CL

BSWAP reverses the byte order of a 32-bit general register: bits 0 through 7 are swapped with bits 24 through 31, and bits 8 through 15 are swapped with bits 16 through 23. This instruction is provided for converting little-endian values to big-endian format and vice versa.

  • bswap edx ; swap bytes in register

TEST Realiza una operación Y lógica entre los dos operandos pero sin almacenar el resultado. Los indicadores son afectados con la operación.

  • test al,bh

No hay comentarios: