miércoles, 25 de septiembre de 2013

Instrucciones de lenguaje ensamblador


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