jueves, 26 de septiembre de 2013

listado de instrucciones



CONJUNTO DE INSTRUCCIONES


Las instrucciones están agrupadas en los siguientes grupos y subgrupos:

1.- TRANSFERENCIA DE DATOS.
     a) De propósito general.
     b) Entrada/Salida.
     c) De operando dirección.
     d) Transferencia de banderas.

 2.-INSTRUCCIONES ARITMENTICAS.
     a) Suma.
     b) Resta.
     c) Multiplicación.
     d) División.

  3.-MANIPULACION DE BIT.
     a) Lógicas.
     b) Desplazamiento.
     c) Giro.

  4.-DE CADENA.

  5.-DE TRANSFERENCIA DE PROGRAMA.
      a) Incondicional.
      b) Condicional.
      c) Control de iteraciones.

  6.-DE INTERRUPCIONES.
 
  7.-CONTROL DEL PROCESADOR.
      A) Operaciones con banderas.
       b) Sincronización extrema.
       c) NOP.
   



CONJUNTO DE INSTRUCCIONES.

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 iderecha 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 esta arriba o igual / no esta bajo)  CF=0
3.-  JBE/JNA      (Salta si es bajo ó igual / no esta arriba)  CF=1 o ZF=1
4.-  JA/JNBE      (Salta si esta 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 mas 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 mas 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
                                             
      


No hay comentarios:

Publicar un comentario