jueves, 23 de octubre de 2014

Instrucciones

Se pueden clasificar en los siguientes grupos:
·         *De Transferencia.
·         *Aritméticos.
·         *Lógicos.
·         *De salto.

Conjunto de intrucciones:


Las instrucciones están agrupadas en los siguientes grupos y subgrupos:
1)    TRANSFERENCIA DE DATOS.

A)     DE PROPOSITO GENERAL
1.-   MOV   destino, Fuente            ; Mueve datos
2.-   PUSH   fuente                         ; Mete datos a la Pila
3.-   POP     destino                        ; Saca datos de la Pila
4.-   XCHG  destino, fuente            ; Intercambia contenidos
5.-   XLAT                                       ; Traduce (Uso para tablas)
      
B)     GRUPO DE ENTRADA-SALIDA.
1.-   IN        acumulador, puerto       ; Lee un dato del Puerto
2.-   OUT    puerto, acumulador       ; Saca un dato por el puerto
                 
C)    DE OPERANDO DE DIRECCION.
1.-    LEA    destino, fuente   ; Carga una dirección efectiva
2.-    LDS    destino, fuente  ; Carga el reg. De segmento datos
3.-    LES    destino,  fuente  ; Carga el reg. De segmento extra
                 
D)    TRANSFERENCIA DE BANDERAS.
1.-    LAHF                            ; Carga al reg. AH con las banderas
2.-    SAHF                           ; Envía el reg AH al reg. de Banderas
3.-    PUSHF                         ; Guarda las banderas en el stack
4.-    POPF                           ; Lo que saca del stack lo pone en el
Reg. De banderas
        
2)    INSTRUCCIONES  ARITMETICAS

A)     DE SUMA

1.-    ADD    destino, fuente  ; Suma de números binarios
2.-    ADC    destino, fuente  ; Suma con carry
3.-    INC     destino              ; Incrementos de 1
4.-    DAA                              ; Ajuste decimal después de sumar
5.-    AAA                              ; Ajuste ASCII después de sumar

B)     DE RESTA

1.-    SUB      destino, fuente            ; resta valores binarios
2.-    SBB      destino, fuente            ; resta con borrow
3.-    CMP     destino, fuente                        ; compara datos
4.-    DAS                                          ; Ajuste decimal después de restar
5.-   AAS                                                       ; Ajuste ASCII después de restar




C)    DE MULTIPLICACION.

1.-   MUL      fuente (sin signo)        ; Multiplica sin signo
2.-   IMUL     fuente  (con signo)      ; Multiplica con signo (enteros)
3.-   AAM                                          ; Ajuste ASCII para la multiplicación

D)    DIVISION
       1.-   DIV      fuente (sin signo)          ; Divide sin signo
2.-   IDIV     fuente  (con signo)        ; Divide con signo
3.-   AAD                                          ; Ajuste ASCII para la división

3)    INSTRUCCIONES DE MANIPULACION DE BITS

A)     LOGICAS

       1.-   NOT     destino                          ; Negación lógica (No)
2.-   AND      destino, fuente             ; Conjunción lógica (y)
3.-   OR        destino, fuente             ; Disyunción lógica (o)
4.-   XOR      destino, fuente                        ; OR Exclusiva
5.-   TEST     destino, fuente            ; Prueba bits
6.-    NEG     destino                         ; Negación

B)     DE DESPLAZAMIENTO

       1.-  SHL      destino, contador          ; Corrimiento lógico a la izquierda
2.-   SAL      destino, contador         ; Corrimiento algebraico a la izq.
3.-   SHR     destino, contador         ; Corrimiento lógico a la Derecha
4.-   SAR     destino, contador          ; Corrimiento algebraico a la Der.

C)    GIROS

       1.-   ROL      destino, contador         ; Rotación a la izquierda
2.-   ROR      destino, contador        ; Rotación a la derecha
3.-   RCL       destino, contador        ; Rotación a la izquierda con carry
4.-   RCR      destino, contador        ; Rotación a la derecha con carry

4)    INSTRUCCIONES DE CADENA

      1.-   MOVS      cadena-destino, cadena-fuente                   ; Mueve cadenas
             MOVSB  ----- MOVSW

      2.-  LODS        cadena-fuente                                              ; carga cadena
      3.-  STOS         cadena-destino, cadena-fuente                  ;Almacena una cadena
            STOSB -----STOSW

      4.-  CMPS       cadena-destino, cadena-fuente                   ; Compara cadenas
             CMPSB ------CMPSW

      5.-   SCAS        cadena-destino                                            ; Explora una cadena
             SCASB ------SCASW

5)  INSTRUCCIONES DE TRANSFERENCIA DE PROGRAMA


    
A)     TRANSFERENCIA INCONDICIONAL

1.-  CALL    destino                                 ; llama a un procedimiento
2.-   RET      (RETN, RETF)                   ; regresa de un procedimiento
3.-   JMP      destino                                ; Salto incondicional

B)     TRANSFERENCIA CONDICIONAL

1.-  JB/JNAE      (Salta si es bajo / no arriba ni igual)  CF=1
2.-  JAE/JNB      (Salta si está arriba o igual / no está bajo)  CF=0
3.-  JBE/JNA      (Salta si es bajo ó igual / no está arriba)  CF=1 o ZF=1
4.-  JA/JNBE      (Salta si está arriba / no bajo ni igual)  CF=0 y ZF=0
5.-  JE/JZ            (Salta si fueron iguales)  ZF=1
6.-  JNE/JNZ       (Salta si no es igual a)  ZF=0
7.-  JL/JNGE       (menor/no más grande ni igual) SF diferente de OF
8.-  JGE/JNL       (mas grande o igual /no menor)  SF=OF
9.-   JLE/JNG      (menor o igual/no más grande)  ZF=1 o SF diferente   
                            de 0F.
                10.- JG/JNLE       (mas grande/no menos ni igual)  ZF=0 o SF=OF
                11.- JP/JPE         (paridad puesto/si hay paridad par)  PF=1
                12.- JNP/JPO      (paridad no puesta/ paridad impar)  PF=0
                13.- JS                 (bit de signo  puesto)  S=1
                14.- JNS               (bit de signo no puesto)  SF=0
                15.- JC                 (carry puesto)  CF=1
16.- JNC             (carry no puesto)  CF=0
17.- JO               (sobreflujo puesto)  OF=1
18.- JNO              (sobreflujo no puesto)  OF=1 

C)     CONTROL DE ITERACIONES
             
                   1.-    LOOP                    ETIQ                ; Repetir hasta que CX=0
                   2.-    LOOPE/LOOPZ    ETIQ                ; Repetir hasta que CX=0 o Z=1
                   3.-    LOOPNE/LOOPNZ   ETIQ                       ; Rep. hasta que CX=0 o Z=0
                   4.-    JCXZ                     ETIQ                ; Salta si CX=0



6)    INSTRUCCIONES DE INTERRUPCION

       1.-    INT   vector                        ; petición de Interrupción
       2.-    IRET                                   ; Regreso de una interrupción          

7)    INSTRUCCIONES DE CONTROL DEL PROCESADOR

a.    OPERACIONES CON BANDERAS

1.-   STC   Pone la bandera de carry   C=1
2.-   CLC   Limpia la bandera de carry  C=0
3.-   CMC  Complementa  la bandera de carry
4.-   STD   Pone la bandera de dirección  D=1
5.-   CLD   Limpia la bandera de dirección D=0
6.-    STI     Pone la bandera de interrupción habilitada   IF=1
7.-   CLI   Limpia la bandera de interrupción habilitada    IF=0

b.    instrucciones de control del procesador
                   
                    1.-    HLT        Pone al micro en estado estático.
                    2.-    WAIT     Entra en edo. de espera hasta que se active la línea 
                                           TEST.
            
8)    INSTRUCCIONES DE CONVERSION
                
                         1.- CBW      Conversión de Byte a palabra            
                         2.- CWD      Conversión de palabra a doble palabra

EJEMPLO GRAFICO:



Mas informacione en:


No hay comentarios:

Publicar un comentario

Top musical en el cintilloo de arriba.. xd