miércoles, 2 de octubre de 2013

Instrucciones de programación en el lenguaje ensamblador.

INSTRUCCIONES:

DE TRANSFERENCIAS DE DATOS.
Estas instrucciones mueven datos de una parte a otra del sistema; desde y hacia la memoria principal, de y a los registros de datos, puertos de E/S y registros de segmentación. 

Las instrucciones de transferencia de datos son las siguientes: 
• MOV transfiere 
• XCHG intercambia 
• IN entrada 
• OUT salida 
• XLAT traduce usando una tabla 
• LEA carga la dirección efectiva 
• LDS carga el segmento de datos 
• LES carga el segmento extra 
• LAHF carga los indicadores en AH 
• SAHF guarda AH en los indicadores 
• PUSH FUENTE (sp) ‹ fuente 
• POP DESTINO destino ‹ (sp)

DE BUCLES.
Éstas posibilitan el grupo de control más elemental de nuestros programas. Un bucle es un bloque de código que se ejecuta varias veces. Hay 4 tipos de bucles básicos:
o Bucles sin fin 
o Bucles por conteo 
o Bucles hasta 
o Bucles mientras 

 Las instrucciones de control de bucles son las siguientes: 
• INC incrementar 
• DEC decrementar 
• LOOP realizar un bucle 
• LOOPZ,LOOPE realizar un bucle si es cero 
• LOOPNZ,LOOPNE realizar un bucle si no es cero 
• JCXZ salta si CX es cero

DE PRUEBA, COMPARACIÓN Y SALTOS.
Este grupo es una continuación del anterior, incluye las siguientes instrucciones: 
• TEST verifica 
• CMP compara 
• JMP salta 
• JE, JZ salta si es igual a cero 
• JNE, JNZ salta si no igual a cero 
• JS salta si signo negativo 
• JNS salta si signo no negativo 
• JP, JPE salta si paridad par 
• JNP, JOP salta si paridad impar 
• JO salta si hay capacidad excedida 
• JNO salta si no hay capacidad excedida

DE LLAMADA Y RETORNO DE SUBRUTINAS.
Para que los programas resulten eficientes y legibles tanto en lenguaje ensamblador como en lenguaje de alto nivel, resultan indispensables las subrutinas: 
• CALL llamada a subrutina 
• RET retorno al programa o subrutina que llamó

ARITMÉTICAS.
A. Grupo de adición: 
• ADD suma 
• ADC suma con acarreo 
• AAA ajuste ASCII para la suma 
• DAA ajuste decimal para la suma 

B. Grupo de sustracción: 
• SUB resta 
• SBB resta con acarreo negativo 
• AAS ajuste ASCII para la resta 
• DAS ajuste decimal para la resta 

C. Grupo de multiplicación: 
• MUL multiplicación 
• IMUL multiplicación entera 
• AAM ajuste ASCII para la multiplicación 

D. Grupo de división: 
• DIV división 
• IDIV división entera 
• AAD ajuste ASCII para la división 

E. Conversiones: 
• CBW pasar octeto a palabra 
• CWD pasar palabra a doble palabra 
• NEG negación 

F. Tratamiento de cadenas: 
Permiten el movimiento, comparación o búsqueda rápida en bloques de datos: 
• MOVC transferir carácter de una cadena 
• MOVW transferir palabra de una cadena 
• CMPC comparar carácter de una cadena 
• CMPW comparar palabra de una cadena 
• SCAC buscar carácter de una cadena 
• SCAW buscar palabra de una cadena 
• LODC cargar carácter de una cadena 
• LODW cargar palabra de una cadena 
• STOC guardar carácter de una cadena

LÓGICAS.
Son operaciones bit a bit que trabajan sobre octetos o palabras completas: 
• NOT negación 
• AND producto lógico 
• OR suma lógica 
• XOR suma lógica exclusiva

DE DESPLAZAMIENTO, ROTACIÓN Y ADEUDOS.
Básicamente permiten multiplicar y dividir por potencias de 2 
• SHL, SAL desplazar a la izquierda (desplazamient o aritmético) 
• SHR desplazar a la derecha 
• SAR desplazamiento aritmético a la derecha 
• ROL rotación a la izquierda
• ROR rotación a la derecha
• RCL rotación con acarreo a la izquierda

DE PILA.
Una de las funciones de la pila del sistema es la de salvaguardar (conservar) datos (la otra es la de salvaguardar las direcciones de retorno de las llamadas a subrutinas): 
• PUSH introducir
• POP extraer
• PUSHF introducir indicadores 
• POPF extraer indicadores

DE CONTROL DEL MICROPROCESADOR.
Hay varias instrucciones para el control de la CPU, ya sea a ella sola, o en conjunción con otros procesadores:
• NOP no operación 
• HLT parada 
• WAIT espera 
• LOCK bloquea 
• ESC escape

DE INTERRUPCIÓN.
• STI poner a 1 el indicador de interrupción 
• CLI borrar el indicador de interrupción 
• INT interrupción 
• INTO interrupción por capacidad excedida (desbordamiento) 
• IRET retorno de interrupción

No hay comentarios:

Publicar un comentario