Instrucciones Lógicas - ITESCAM by huanghengdong

VIEWS: 4 PAGES: 4

									Instrucciones Lógicas: NEG, NOT, AND, OR, XOR



* NEG: Esta instrucción lo que hace es calcular el complemento a
            dos del operando, y almacenando en el mismo lugar. Esto
            es, efectivamente, equivalente a cambiar de signo el ope-
            rando de la instrucción.


Ejemplo:
MOV ax, 5      ; a AX se le pasa el valor 5.

NEG ax       ; Se haya el complemento a 2 de AX y se guarda en AX (AX= -5).

NEG byte ptr es:[bx+si+2]; Se haya el complemento a 2 de la posición de memoria

                               ; (dentro del Segmento Extra) indicada por el de "BX+S-

I+2"




* NOT: Se realiza el NOT lógico del operando bit a bit. El NOT
            lógico       bit     a   bit   consiste   en   invertir    cada   bit   del
            operando (pasar los 0 a 1 y los 1 a 0; 10100 -> 01011)


Ejemplo:
NOT si      ; El valor que tenga SI pasa los 0 a 1 y los 1 a 0.

NOT word ptr es:[0]            ; Lo mismo pero en una posición de memoria.




* AND: Operación "y lógico" a nivel de bit entre los dos operan-
            dos. El resultado se almacena en el destino.
            Formato AND destino, fuente.


                     0   0 - 0

                     0   1 - 0

                     1   0 - 0

                     1   1 - 1
Ejemplo:
AND ax, bx ; AND lógico entre AX y BX. El resultado queda en AX.

AND es:[0], dx ; Lo mismo pero con posiciones de memoria.

AND di, es:[si]

AND byte ptr[9], 3 ; Lo mismo pero con valores inmediatos.




* OR: Operación         "o     lógico   exclusivo"   a   nivel   entre     los   dos
       operandos. El resultado se almacena en el destino.
       Formato OR destino, fuente.
                   0   0 - 0

                   0   1 - 1

                   1   0 - 1

                   1   1 - 1



Ejemplo:
OR al, ah    ; Las mismas operaciones que con AND pero utilizando el OR.

OR [di], ch

OR cl, [bp+4]

OR byte ptr es:[si], 1




* XOR: Operación "o lógico exclusivo" a nivel de bit entre los
            dos operandos. El resultado se almacena en destino.
            Formato XOR destino, fuente.


                   0   0 - 0

                   0   1 - 1

                   1   0 - 1

                   1   1 - 0




Ejemplo:
XOR ax, ax ; El XOR entre dos bits con el mismo valor es siempre 0,

              ; independientemente del valor previo de AX (AX=0).
       ; Las ventajas de hacerlo así son dos: la ejecución de XOR reg, reg es más

       ; rápida que la de MOV reg, o que la de MOV ax,0 , y la codificación de la

       ; primera ocupa menos bytes que la segunda; Esta técnica no puede utilizar

       ; se para poner a cero los registros de segmento.

XOR byte ptr[55aah], 4

XOR al, 00aah




* XCHG: Intercambia el contenido entre dos operandos. No pueden
           utilizarse registros de segmento como operandos.


Ejemplo:
XCHG si, di     ; Si SI tiene valor 45 y DI tiene valor 68, ahora, DI se queda con

                ; valor 45 y SI con 68.

XCHG al, [bx+4]

XCHG ss:[si], bx




* CMP: Formato CMP destino, origen. (destino - origen) Esta ins-
         trucción realiza una resta de un operando origen sobre un
         operando        destino,   pero    con   la    particularidad      de   no
         almacenar el resultado y no modificar ninguno de los 2
         operandos, pero si se modifican los bits de indicadores
         (Flags). Los operandos deben ser del mismo tipo.
           Esta modificación de los bits de indicadores, nos permi-
         tirá      posteriormente,        mediante     la   inspección    de     los
         mismos, poder realizar determinadas acciones. Normalmente
         después de una instrucción de comparación (CMP), hay una
         instrucción de salto.
Ejemplo:
CMP ax, bx ; Comparamos AX con BX

JL menor ; Si AX es menor que BX saltamos a la etiqueta MENOR

                     .

                     .

MENOR:

CMP bl, cl

CMP bx, cx

CMP bl, byte ptr es:[si]

CMP word ptr es[si], bx

CMP bx, 30

CMP byte ptr es:[si], 01h      ; Normalmente, después de cada instrucción de

                               ;comparación, viene una instrucción de salto.

								
To top