Вы находитесь на странице: 1из 10

Proceso Unidad 1 : Introducción al Lenguaje ensamblador >

Introducción
Unidad 2: Programación Basica
ENSAMBLADOR Y LIGADOR
¿Te gustaría
descubrir que hay
más allá de la Tierra?
Ensamblado
El universo es todo Un ensamblador es el programa que convierte un listado d
aquello que nos
rodea. ¿Sabes qué es escrito en un fichero de texto, en código objeto, es decir, l
una estrella? ¿Y un que finalmente interpretará el procesador) en el que sólo l
planeta? ¿Por qué es
tan importante el referencias a rutinas externas. El código fuente es un fiche
Sol? ¿La luna sirve secuencia de instrucciones en lenguaje ensamblador que fo
para algo en la
tierra? así como ciertas directivas o comandos para el propio ensa
sido creado utilizando un editor de texto. El código objeto
lenguaje máquina y de la información necesaria para enlaz
No lo dudes más módulos objeto.
y adentrate en
nuestras actividades.
Linkado y montado
Al construir un programa algunos de sus módulos pueden
¡Tendrás que
convertirte en un mismo módulo fuente y ensamblarse juntos, otros pueden
buen astronauta para diferentes y ser ensamblados separadamente. En cualquie
conocer nuestro
mundo! objeto resultantes, algunos de los cuales pueden estar agr
deben ser enlazados para formar el módulo de carga, ante
Tarea ejecutar el programa. Además de dar como salida el módu
o enlazador imprime un mapa de memoria que indica dond
módulos objeto en la memoria.
Recursos

COMPARACION Y PRUEBA
Evaluación
Este grupo es una continuación del anterior, incluye las siguient

• TEST verifica

• CMP compara
SALTOS

• 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 excedid

• JB, JNAE salta si por abajo (no encima o

• JNB, JAE salta si no está por abajo (encima

• JBE, JNA salta si por abajo o igual (no en

• JNBE, JA salta si no por abajo o igual (en

• JL, JNGE salta si menor que (no mayor o

• JNL, JGE salta si no menor que (mayor o

• JLE, JNG salta si menor que o igual (no m

• JNLE, JG salta si no menor que o igual (m


CICLOS DE CONDICIONALE
Ciclo For

La Sintaxis empleada por el ciclo for es la siguiente:


***********************************************
for (valores de entrada ; condición de terminación ; iteraci
***********************************************

Las tres partes del ciclo se encuentran separadas por ; (pu

La primer parte del ciclo especifica valores previos a su ini

La segunda parte indica la condición de terminación para e


directamente relacionada con los valores iniciales.

Finalmente, la última parte especifica cómo serán manipul


iniciales en cada iteración del ciclo.

Ciclo IF

Una característica del ciclo if/else es el uso de llaves { }, e


pudo notar que no fueron utilizadas llaves { } para delimit
al no emplearse este mecanismo, se asume que el ciclo o c
efecto únicamente en la linea contigua a su inicio. Aunque
utilizar llaves ({ } ) para incrementar la legibilidad del cód
señalar que esta sintaxis de no utilizar llaves ({ } ) es váli
(Lamentablemente) .

Existe otra variación de if/else que agrupa las condicionale


expresión:

***********************************************
if (expresion Boolean ? operación verdadera : operación fa
***********************************************
Ciclo While
En este ciclo el cuerpo de instrucciones se ejecuta mien
permanezca como verdadera, en el momento en que la co
en falsa el ciclo termina.

Su formato general es:

Cargar o inicializar variable de condició


*****************************************
While (condición)

Grupo cierto de instrucciones;

Instrucción(es) para salir del ciclo; };


*****************************************

INCREMENTO Y DECREM
Las instrucciones del ensamblador

Instrucciones de transferencia Son utilizadas para mover


operandos. Cada instrucción se puede usar con difer
direccionamiento.

MOV

MOVS (MOVSB) (MOVSW)

Instrucción MOV

Propósito: Transferencia de datos entre celdas de mem


acumulador.

Sintaxis:

MOV Destino, Fuente


Donde Destino es el lugar a donde se moverán los datos
donde se encuentran dichos datos.

Los diferentes movimientos de datos permitidos para es

Destino: memoria. Fuente: acumulado

Destino: acumulador. Fuente: memori

Destino: registro de segmento. Fuente: memor

Destino: memoria/registro. Fuente: registro de

Destino: registro. Fuente: registro

Destino: registro. Fuente: memoria

Destino: memoria. Fuente: registro

Destino: registro. Fuente: dato inmedia

Destino: memoria. Fuente: dato inmedia

La instrucción MOV y los modos de direcciona

He aquí nuestra primera instrucción:

MOV destino, origen

Efectivamente, sirve para mover. Lo que hace es copiar lo


en "destino". Lo de que primero vaya el destino y luego e
todas las instrucciones del 8086 que tengan dos operando
de un quebradero de cabeza al principio

MOV AX,BL

MOV AX, BX sin embargo hace que el procesador coja el


copiara en AX; lo que había anteriormente en AX se pie
registro al fin y al cabo es un número, en este caso de
hemos asignado un nuevo valor), mientras que BX no se
decimos "mover" en realidad sería más apropiado "co
alteramos en absoluto el operando orige
CAPTURA DE CADENAS CON FOR
Permiten el movimiento, comparación o búsqueda rápida

• MOVC transferir carácter de una cade

• MOVW transferir palabra de una cade

• CMPC comparar carácter de una cade

• CMPW comparar palabra de una cade

• SCAC buscar carácter de una caden

• 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 caden

• STOW guardar palabra de una caden

• REP repetir

• CLD poner a 0 el indicador de direcció

• STD poner a 1 el indicador de direcció

INSTRUCCIONES ARITMÉTICAS

Instrucciones Aritméticas.

Estas instrucciones son las que realiza directamente

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

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

INSTRUCCIONES LÓGICAS
Son operaciones bit a bit que trabajan sobre octetos o p

• NOT negación

• AND producto lógico

• OR suma lógica

• XOR suma lógica exclusiva

DESPLAZAMIENTO Y ROTACI
Instrucciones de Desplazamiento Circul

RCL (Rotación a la izquierda con acarre

Sintaxis:

RCL destino, contador

Indicadores:

OF DF IF TF SF ZF AF
x - - - - - -

Rotar a la izquierda los bits del operando destino junto


acarreo CF el número de bits especificado en el segund
número de bits a desplazar es 1, se puede especificar dir
contrario el valor debe cargarse en CL y especificar C
operando. No es conveniente que CL sea mayor de 7, e
palabras.

Ejemplos:
RCL AX,1

RCL AL,CL

RCL DI,1

RCR (Rotación a la derecha con acarreo

Sintaxis:

RCR destino, contador

Indicadores:

OF DF IF TF SF ZF AF
x - - - - - -

Rotar a la derecha los bits del operando destino junto c


acarreo CF el número de bits especificado en el segund
número de bits es 1 se puede especificar directamente; e
valor debe cargarse en CL y especificar CL como seg

Ejemplos:

RCR BX,CL

RCR BX,

ROL (Rotación a la izquierda).

Sintaxis:

ROL destino, contador

Indicadores:

OF DF IF TF SF ZF AF
x - - - - - -
Rota a la izquierda los bits del operando destino el número
en el segundo operando, que puede ser 1 ó CL previame
valor del número de veces.

Ejemplos:

ROL DX,CL

ROL AH,1

ROR (Rotación a la derecha).

Sintaxis:

ROR destino, contador

Indicadores:

OF DF IF TF SF ZF AF
x - - - - - -

Rota a la derecha los bits del operando destino el número


en el segundo operando. Si el número de bits es 1 s
directamente, en caso contrario debe ponerse a t

Ejemplos:

ROR CL,1

ROR AX,CL

Вам также может понравиться