Está en la página 1de 13

ARQUITECTURA DE COMPUTADORES

CICLO DE LA TAREA 3. DESARROLLAR CÓDIGOS EN LENGUAJES


ENSAMBLADOR

Presentado a:
ANYELO GERLEY QUINTERO

Entregado por:

Cristian David Meza Mendoza


Código: 1.099.992.990

Grupo: 301302_40

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD

29/04/19
Introducción

El presente documento tiene como propósito plasmar mediante evidencias lo aprendido


en la unidad tres del curso de arquitectura de computadores, en el que se explicara
mediante un diagrama las instrucciones tipo salto para el lenguaje ensamblador,
seguidamente se requiere haber estudiado la unidad tres para tener la capacidad de
desarrollar las líneas de comandos en ensamblador, seguidamente se plasma la
evidencia de un programa que tiene como objetivo comparar números pares, impares y
el cero con el manejo de registros del procesador del computador y la lectura del
teclado del mismo procesara y determinara si es lo que se solicita, se requiere haber
estudiado la unidad tres para tener la capacidad de desarrollar las líneas de comandos
en ensamblador
Objetivos

Objetivo General

Explorar las instrucciones tipo salto en lenguaje ensamblador, aplicándolo a ejercicios


reales para programar.

Objetivos Específicos
 Realizar un gráfico indicando los conceptos de: instrucciones tipo de salto,
instrucciones saltos condicionales e incondicionales, instrucciones de etiquetas,
instrucciones de bucles.
 Identificar los diferentes códigos en lenguaje ensamblador.

 Desarrollar casos reales con códigos fuentes, reconociendo la forma de realizar


operaciones matemáticas.

Desarrollo de Actividad
Link de archivos la extensión .asm

https://drive.google.com/drive/folders/1Re0Une600Su-g0nTgmnheq_DkUDTlz-M?usp=sharing

1.
Explicar mediante un gráfico en que consiste las instrucciones tipo salto del Lenguaje
Ensamblador (Direcciones corta, cercana y lejana, etiquetas, saltos incondicionales, saltos
condicionales, instrucciones de testeo, decisiones y bucles).
Estos saltos son designados por Instrucción Descripción
el mnemotécnico “JMP”, cuando es JMP Salto incondicional directo
encontrado esta indicación se JE Salto por igual
ejecuta invariablemente, es decir JNE Salto por no igual
añade la distancia del salto al JNG Salto por mayor
Registro IP. Su sintaxis es: etiqueta JGE Salto no por mayor
JMP dirección corta, cercana o JL Salto por mayor igual
Lejana. JNL Salto por no menor
JLE Salto por menor igual
Dentro de las etiquetas de salto JNLE Salto por no menor igual
incondicional se encuentran las JS Salto negativo
siguientes:
Concepto
Envía control del programa a un
conjunto de instrucciones que se
Etiquetas Son nombres que se asignan
identifican pro medio de una a las direcciones de cualquier
etiqueta instrucción o localización de
memoria, una vez el

SaltosIncondicionales
Corta-Cercana-Lejana
instrucción cercana a MOV.

ensamblador encuentra una


etiqueta, es reemplazada por la
dirección correcta, por ejemplo:
un salto a A90; es una etiqueta
dada a un atributo a una

Son saltos de tres tipos y están


determinados por la longitud del
salto. Se describe a continuación: Instrucciones tipo
salto lenguaje
Dirección Corta: Esta es ensamblador Las instrucciones de
alcanzada por un desplazamiento Direcciones Instrucciones decisiones son
de un byte, y está limitado a una de decisiones representadas para toma
distancia de 128-127 bytes. de decisiones, el lenguaje
ensamblador del MIPS

Saltoscondicionales

Instruccionesdetesteo
dependiendo de las
Dirección Cercana: Aquí se da el Instrucciones incluye dos instrucciones
desplazamiento de una palabra, de bucles de toma de decisiones
limitado a una distancia de 32, 768 similares a una sentencia If
a 32, 767 bytes en el mismo Los saltos condicionales con go to. La primera
segmento. transfieren control instrucción es beg
registro1, registro2, L1.
Dirección Lejana: Se alcanza por configuraciones en el registro, Esta instrucción significa ir
medio segmentos y solo tiene esto indica que cuando salta
a la sentencia etiquetada
sentido en programas tipo Exe. de un lugar a otro si se cumple Las instrucciones de Las instrucciones de
bucles, Son instrucciones con L1.
cierta condición lo ejecuta y testeo, compara
sino continua en la siguiente lógicamente los simples que posibilitan un
línea operando, destino fuente grupo de control elemental
Test. Esta instrucción en los programas. Un bluce
desarrolla una conjunción es un bloque de código que
de bit por bit de los se ejecuta varias veces.
operando, a diferencia del Hay varias tipos de bucles:
AND no coloca el resultado Bucles sin fin
en el operando destino, Bucles por conteo
solo hace en el estado de Bucles hasta
las banderas. Bucles mientras
2. Desarrollar un código en lenguaje ensamblador que permita leer un número de
un digito por teclado y determinar si el número es par, impar o cero.

Código:

;Nombre del Autor: Cristian David Meza Mendoza


;Codigo: 1.099.992.990
;Grupo No:301302_40
;Fecha: 25/04/2019
;
.model samll
.stack 64
.data
;codigo para multiplicar y potenciardos numeros
msg0 db 10, 'Ingrese primer numero base operacion: ', '$'
prn db 0
msg1 db 10, 'Ingrese segundo numero operacion: ', '$'
sgn db 10
msg2 db 00, 'El valor de la multiplicacion es: ', '$'
res1 db 00
msg3 db 00, 'El valor de la potencia es: ', '$'
res2 db 00
jump db "",10,10,13,11,'$'
base db 00
exp db 00
.code
main proc far
mov ax, @data
mov ds, ax
mov ax, 00
mov al, 03h
int 10h
mov ah,09h
lea dx, msg0
int 21h
mov ah, 01h
int 21h
sub al, 30h
mov prn, al
mov exp,al
mov ah, 09
lea dx, jump
int 21h
mov ax,@data
mov ds,ax
mov ah,09
lea dx,msg1
int 21h
mov ah,01h
int 21h
sub al, 30h
mov sgn,al
mov base,al
mov ah,09
lea dx, jump
int 21h
;bucle multiplicacion
mov cl,sgn
mov al,0
mov bl,prn
x:
add al,bl
loop x
mov res1,al
;bucle potenciancion
mov cl,base
mov al,1
mov bl,exp
xx:
mul bl
loop xx
mov res2,al
mov ax,@data
mov ds,ax
mov ah,09
lea dx,msg2
int 21h
; implimiendo resultado de la multiplicaicon
mov dl,res1
add dl,30h
mov ah,02h
int 21h
mov ah,09
lea dx, jump
int 21h
mov ax, @data
mov ds,ax
mov ah,09
lea dx, msg3
int 21h
;imprimiendo resultado de la potencia
mov dl,res2
add dl,30h
mov ah,02h
fin:
int 21h
mov ax,4c00h
main endp
end main
3. Desarrollar un código en lenguaje ensamblador que permita realizar una
multiplicación de dos números a través de sumas sucesivas y una potencia a través de
multiplicaciones sucesivas (para ello debe utilizar instrucciones tipo bucle). Al inicio del
programa se deben capturar por teclado dos números de un digito cada uno

Código:

;Nombre del Autor: Cristian David Meza Mendoza


;Codigo: 1.099.992.990
;Grupo No:301302_40
;Fecha: 25/04/2019
;
.model samll
.stack 64
.data
;codigo para multiplicar y potenciardos numeros
msg0 db 10, 'Ingrese primer numero base operacion: ', '$'
prn db 0
msg1 db 10, 'Ingrese segundo numero operacion: ', '$'
sgn db 10
msg2 db 00, 'El valor de la multiplicacion es: ', '$'
res1 db 00
msg3 db 00, 'El valor de la potencia es: ', '$'
res2 db 00
jump db "",10,10,13,11,'$'
base db 00
exp db 00
.code
main proc far
mov ax, @data
mov ds, ax
mov ax, 00
mov al, 03h
int 10h
mov ah,09h
lea dx, msg0
int 21h
mov ah, 01h
int 21h
sub al, 30h
mov prn, al
mov exp,al
mov ah, 09
lea dx, jump
int 21h
mov ax,@data
mov ds,ax
mov ah,09
lea dx,msg1
int 21h
mov ah,01h
int 21h
sub al, 30h
mov sgn,al
mov base,al
mov ah,09
lea dx, jump
int 21h
;bucle multiplicacion
mov cl,sgn
mov al,0
mov bl,prn
x:
add al,bl
loop x
mov res1,al
;bucle potenciancion
mov cl,base
mov al,1
mov bl,exp
xx:
mul bl
loop xx
mov res2,al
mov ax,@data
mov ds,ax
mov ah,09
lea dx,msg2
int 21h
; implimiendo resultado de la multiplicaicon
mov dl,res1
add dl,30h
mov ah,02h
int 21h
mov ah,09
lea dx, jump
int 21h
mov ax, @data
mov ds,ax
mov ah,09
lea dx, msg3
int 21h
;imprimiendo resultado de la potencia
mov dl,res2
add dl,30h
mov ah,02h
fin:
int 21h
mov ax,4c00h
main endp
end main
Conclusiones

 El lenguaje ensamblador es una forma de comunicación con el computador para


la creación de programas o software que hoy día son utilizados en el mundo
empresarial, este trabajo permitió reconocer y explorar los conceptos básicos de
instrucciones de salto, y los elementos necesarios para que este funcione
oportunamente. Algunos de estas herramientas son: instrucciones de bucles, de
decisiones, saltos condiciones, saltos incondicionales, entre ellos. Programar no
es una tarea fácil, sin embargo la creatividad e imaginación juega un papel
importante, los códigos y la sintaxis de la misma permite finalmente diseñar
cualquier programa.
 El lenguaje de bajo nivel representa retos importantes ya que se debe considerar
lo más básico de la instrucción, a diferencia de otros lenguajes de programación
en los que se da por entendido implícito algunas instrucciones.
 Ayuda al aprendizaje de los registros del procesador en donde para elaborar un
código es necesario saber el comportamiento de cada uno.
 El repertorio de instrucciones es de poca cantidad pero es complejo el uso al
iniciar, se debe entender la lógica de funcionamiento muy buen reto
Referencias Bibliográficas

Recuperado de:

 http://comunidad.dragonjar.org/f177/tutorial-completo-de-lenguaje-

Ensamblador-8845/#post21426.
 http://www.abreojosensamblador.net/Productos/AOE/html/Pags/Cap04.html

https://es.scribd.com/doc/6643575/unidad-2-ensamblador.
 https://books.google.com.co/books?id=z1ukg428VjcC&pg=PA115&lpg=PA1

15&dq=que+son+instrucciones+de+decision+en+saltos+de+lenguaje+ensa
mblador&source=bl&ots=VIXz8ohBtf&sig=3FmpEQntBPyEPYkY4oQmypLJ
PyY&hl=es-

También podría gustarte