Sei sulla pagina 1di 21

ARQUITECTURA DE COMPUTADORES

COLABORATIVO

UNIDAD 3: CICLO DE TAREA 3


INTRODUCCION

Con el presente trabajo colaborativos presentamos las preguntas resueltas y que el


grupo considera como la mejor opción para dar respuesta a las actividades de la
guía sobre las temáticas del LENGUAJE ENSAMBLADOR.

Cuando se crearon las primeras computadoras electrónicas fue necesario que se


guardase en ellas todas las instrucciones de los que se quería ejecutar. Pero en
estas primeras computadoras solo se podían almacenan números binarios.

El lenguaje ensamblador se empleó para la creación de programas en el pasado,


actualmente se usa muy poco. Únicamente cuando se requiere un control directo
del hardware o se quiere conseguir rendimientos poco comunes de los equipos.

Fue usado principalmente en los inicios del desarrollo de software, cuando aún no
se contaba con potentes lenguajes de alto nivel y los recursos eran limitados.
Actualmente se utiliza con frecuencia en ambientes académicos y de investigación,
especialmente cuando se requiere la manipulación directa de hardware, alto
rendimiento, o un uso de recursos controlado y reducido. También es utilizado en el
desarrollo de controladores de dispositivo (en inglés, device drivers) y en el
desarrollo de sistemas operativos, debido a la necesidad del acceso directo a las
instrucciones de la máquina. Muchos dispositivos programables (como los
microcontroladores) aún cuentan con el ensamblador como la única manera de ser
manipulados.

El lenguaje ensamblador siempre ha estado presente en todas las arquitecturas de


computadores existentes, en nuestro tiempo la manipulación de código o rutinas
sobre este lenguaje es casi inexistente, dado que contamos con los IDE de
programación que al compilarlos están transformado ese código orientado a objetos
en su mayoría a código de ensamblador de forma transparente.
OBJETIVOS

 Conocer y profundizar en los conceptos fundamentales respectivos a la


unidad 3 de arquitectura de computadores y lograr mediante la practica
ampliar el conocimiento sobre el lenguaje ensamblador.

 Explicar por medio de infografía las instrucciones del Lenguaje Ensamblador.

 Desarrollar los dos ejercicios propuestos con el Lenguaje Ensamblador


EMU8086, con su respectivo código y pantallazos.

 Comprender las instrucciones típicas y formato de instrucciones en lenguajes


ensamblador.

 Identificar los diferentes formatos de instrucciones en ensamblador.

 Identificar las instrucciones típicas en ensamblador


INFOGRAFIA LENGUAJE ENSAMBLADOR
ACTIVIDAD 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. Documentar
perfectamente todo el código. Generar tres capturas por pantalla de la ejecución del
programa. Anexar Archivo.asm del programa.

EVIDENCIA FOTOGRAFICA:

Resultado de consulta 0
Resultado número impar
CODIGO FUENTE:
;ANDRES FERNANDO HERRERA MESA
;80049810

;GRUPO NO.301302_22
;ABRIL 30 2019
;UNAD-INGENIERIA DE SISTEMAS
;
;

.model small ; define el tipo de memoria que se utilizara


.stack 64 ; es para darle el grandor a la pila
.data

msg1 db 10,13, '"por favor ingrese un numero:", $' ; se escribe la informacion que
va a salir
msg2 db 10,13, "el numero ingresado es Par: ", '$' ; se escribe la informacion que
va a salir
msg3 db 10,13, "el numero ingresado es Impar: ", '$' ; se escribe la informacion
que va a salir
msg4 db 10,13, "el numero ingresado es cero: " ,'$' ; se escribe la informacion
que va a salir

.code

mov ax, @data ; direccionamiento de segmentos


mov ds, ax

inicio:
lea dx,msg1
mov ah, 09h
int 21h

call leernumeros
call comparacion

leernumeros:; aqui se programa para leer y convertir el numero para verlo en


pantalla

mov ah,01h
int 21h
sub al, 30h; para convertir en ascii y visualizarlo
ret

;mov var1,al
;int 21h

comparacion:

cmp al,0h
je CERO ; que salte si en cero
and al,01h

jz par ; que salte si es par


jmp impar; que salte si es impar
;cuando el numero sea impar se va a mostra el mensaje msg3

impar:
lea dx, msg3

mov ah,09h
int 21h
jmp inicio

;cuando el numero sea par se va a mostra el mensaje msg2

par:
lea dx, msg2
mov ah,09h
int 21h
jmp inicio

;cuando el numero sea cero se va a mostrar el msg4

CERO:
lea dx, msg4
mov ah,09h
int 21h
jmp inicio
;para salir del programa
end

.
ACTIVIDAD 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. Documentar perfectamente todo el código. Generar tres capturas por pantalla
de la ejecución del programa. Anexar Archivo .asm del programa.

EVIDENCIA

FOTOGRAFICA:

PROGRAMA COMPILADO:
PROGRAMA
CODIGO FUENTE:
;ANDRES FERNANDO HERRERA MESA
;80049810
;GRUPO: 301302_22
;30 ABRIL DE 2019
;UNAD- INGENIERIA DE SISTEMAS
;ARQUITECTURA DE COMPUTADORES

;----------------------------------------------------

.model small; modelo de memoria

.stack 64; tamaño de la pila

.data

numero1 db 0
numero2 db 0
resultado db 0

mensaje db 10,13,"MULTIPLICACION Y POTENCIA","$"


mensaje1 db 10,13,"DIGITE EL PRIMER NUMERO","$"
mensaje2 db 10,13,"DIGITE EL SEGUNDO NUMERO","$"
resultado1 db 10,13,"EL PRODUCTO ES:","$"
resultado2 db 10,13,"LA POTENCIA ES:","$"

.code
.startup

mov ah,09h
lea dx,mensaje
int 21h
lea dx,mensaje1
int 21h

call leer
sub al,30h
mov numero1,al
mov ah,09h
lea dx,mensaje2
int 21h
call leer

sub al,30h
mov numero2,al
mov cx,0
mov cl,numero1

mov bl,0

;sumas suceciva como lo solicita la guia

suma:
add bl, numero2
loop suma
mov resultado,bl
mov ah,09h
lea dx,resultado1
int 21h
call imprimir

;multiplicacion suceciva solicitado en la guia

mov cx,0
mov cl,numero1
mov cl,numero1
mov al,1

multiplicacion:

mul numero2
loop multiplicacion
mov resultado,al
mov ah,09h
lea dx, resultado2

int 21h
call imprimir

leer proc near


mov ah,01h
int 21h
ret
leer endp

imprimir proc near


cmp resultado,10
jnae imp
mov ax,0
mov al,resultado
mov dl,10
div dl
mov dh,ah
mov dl,al
add dl,30h
mov ah,02h
int 21h
mov dl,dh
add dl,30h
mov ah,02h
int 21h
jmp terminar

imp:

mov dl, resultado


add dl,30h
mov ah, 02h
int 21h
terminar:
ret
imprimir endp
CONCLUSIONES

 Poder comprender como funciona el lenguaje ensamblador y sus


principales características.

 La gran diferencia entre el lenguaje ensamblador y los lenguajes de alto nivel


que se usan hoy en día, son las características para hacer programación web,
escritorio, además los entornos gráficos que éstos poseen para el desarrollo de
aplicaciones, etc.

 El lenguaje de programación ensamblador nunca será obsoleto, ya que en la


actualidad son usados en diferentes campos tales como en la programación de
sistemas operativos y contextos académicos y esto hace que sea uno de los
lenguajes más utilizados.

 Entender las etiquetas y los procesos que tare y funciones de cada una en el
lenguaje ensamblador.

 Se identifica las instrucciones típicas en ensamblador como los condicionales,


etiquetas, decisiones, bucles.

 Se identifica los diferentes formatos de instrucciones en ensamblador como los


saltos y asignación de etiquetas.
REFERENCIAS

Arquitectura de una computadora. (2011). Fundamentos de


Informática. Universidad Tecnológica Nacional. Facultad Regional
Rosario Dto. I. Eléctrica. Recuperado de

http://www.frro.utn.edu.ar/repositorio/catedras/electrica/2_anio/funda
mentos_informatica/apuntes/arquitectura/Tema1.pdf

Blum, R. (2005). Professional Assembly Language. Indianapolis, IN:


Wrox. (págs.1 - 123). Recuperado de

http://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.c
om/login.aspx?direct=true&db=nlebk&AN=127889&lang=es&site=eds-
live&ebv=EB&ppid=pp_123

Hurtado, A. (15 de 11 de 2016). http://www.abreojosensamblador.net.


Recuperado de

https://w6h1uvmqkgffmqwddvae2q-
on.drv.tw/Arquitectura/ensamblador/Index.html

Moreno, R. (2016). Arquitectura y organización de la computadora:


microprocesadores y programación assembler (págs. 1-
95). Recuperado de

https://bibliotecavirtual.unad.edu.co:2538/lib/unadsp/reader.action?ppg
=1&docID=4499097&tm=1543529967064

Soriano, A. (2002). Estructuras de computadores : problemas resueltos.


[Alicante]: Digitalia (págs.13 - 50). Recuperado de

http://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.c
om/login.aspx?direct=true&db=nlebk&AN=318079&lang=es&site=eds-
live

Ensamblador EMU8086
https://emu8086.waxoo.com/

Potrebbero piacerti anche