viernes, 3 de marzo de 2017

Conjunto de instrucciones de programación



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 está arriba o igual / no está bajo)  CF=0
3.-  JBE/JNA      (Salta si es bajo o 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       (más 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       (más 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                 (sobre flujo puesto)  OF=1
18.- JNO              (sobre flujo 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 CONVERSIÓN
                
                         1.- CBW      Conversión de Byte a palabra                 
                         2.- CWD      Conversión de palabra a doble palabra
                        

          9)    de uso general

                        AX: Acumulador (AL: AH)
                        BX: Registro base (BL: BH)
                        CX: Registro contador (CL: CH)
                        DX: Registro de datos (DL: DH)

       10) Registros de segmento (Solo se pueden usar para los usos           mencionados a excepción de ES)

                       DS: Registro del segmento de datos
                       ES: Registro del segmento extra
                       SS: Registro del segmento de pila
                       CS: Registro del segmento de código



  
      11) Registros punteros (También pueden tener uso general)

                     BP: Registro de apuntadores base
                      SI: Registro índice fuente
                      DI: Registro ìndice destino

  12) Registros especiales (Solo se pueden usar para los usos mencionados)

                    SP: Registro apuntador de la pila
                     IP: Registro apuntador de la siguiente instrucción
                      F: Registro de banderas (8 bits)




No hay comentarios:

Publicar un comentario