Está en la página 1de 13

ARQUITECTURA DE COMPUTADORES

UNIDAD 3: CICLO DE LA TAREA 3

PRESENTADO POR

PRESENTADO A
ANYELO GERLEY QUINTERO
CURSO: 301302A _ 611

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

MAYO 2019
INTRODUCCIÓN

Teniendo en cuenta que se está adelantando el proceso formativo de la Unidad 3,


en donde se busca establecer los registros de propósito general como base para
el desarrollo de los códigos de lenguaje ensamblador, de la misma forma que el
estudiante apropie y sea capaz de interactuar con el lenguaje, que incluye su
repertorio, instrucciones, etiquetas y demás que demuestren el buen uso y
desarrollo del lenguaje ensamblador utilizando registros de propósito general.
Esta actividad pretende, además, que el estudiante conozca, afiance y escriba en
lenguaje de máquina ensamblador, algunos ejercicios simples que evidencié el
dominio del tema propuesto para este tercer ciclo.
OBJETIVOS

- Conocer el Lenguaje de máquina Ensamblador (Instrucciones, etiquetas,


usos)

- Desarrollar códigos simples de ejecución.

 
 

DESARROLLO DE LA ACTIVIDAD

1. Explicar mediante una infografía en que consiste las instrucciones tipo de


salto del Lenguaje Ensamblador (Direcciones corta, cercana y lejana,
etiquetas, saltos incondicionales, saltos condicionales, instrucciones de
testeo, decisiones y bucles). Cada instrucción debe tener una definición y 1
ejemplo en lenguaje ensamblador.

RTA//

Una operación de salto corta 
se realiza con un 
Corta
desplazamiento de un byte, 
limitado a ‐128 a 127 bytes

Una operación de salto 
cercana se realiza con un 
desplazamiento de una 
Direcciones Cercana
palabra, limitado a una 
distancia de ‐32.768 a 32.767 
bytes en el mismo segmento

Una dirección lejana puede 
estar en otro segmento y es 
Lejana alcanzada por medio de una 
dirección de segmento y un 
desplazamiento

Nombre que se les asignan a las direcciones de cualquier 
Etiquetas instruccion o localizacion de memoria. UNa etiqueta toma el 
luhar de una dirección

Esta no necesita realizar 
Instrucciones tipo salto 
Saltos incondicionales nincuna comparación previa 
lenguaje Ensamblador
para que se ejecute

Saltos

Es necesario realizar una 
Saltos condicionales comparación pra determinar la 
acción que se va a realizar.

Su propósito es comparar lógicamente los operadores y esta la hace bir 
Instrucciones de testeo por bit, pero ésta instrucción no coloca el resultado en el operando 
destino

Se usa la instrucción LOOP, la cual compara CX con cero y si es 
Bucles igual, sigue adelante, de lo contratio se vuelve al lugar que se 
indica en su operador y se decrementa CX en uno

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 archivos .asm del programa.
RTA//

;Programa para determinar numero par, impar o cero


;Julian Gil Ramirez
;1020739214
;Grupo no. 611
;mayo 2019

.model small ; modelo de memoria


.stack 64 ; tamaño de la pila
.data

;declaracion mensajes de retorno


mensaje1 db 10,13, "INGRESE NUMERO", '$'
mensaje2 db 10,13, "El numero es PAR", '$'
mensaje3 db 10,13, "El numero es IMPAR", '$'
mensaje4 db 10,13, "El numero es CERO", '$'

variable db 0

.code

start proc far

mov ax,@data ;carga el acumulador


mov ds,ax

mov ah,09h
lea dx,mensaje1
int 21h ;Muestra el mensaje 1

mov ah,01h ;captura del numero


int 21h
sub al,30h
mov variable,al ;se almacena en variable
int 21h

sub al,30h
mov ah,variable
mov bl,variable ;se almacena en registro

cmp bl,0 ;comparacion

jnp par
jmp impar
je cero

par:
mov ah,09h
lea dx,mensaje2
int 21h
jmp exit ; se verifica la memoria 09h y si cumple se mueve al acumulador

impar:
mov ah,09h
lea dx,mensaje3
int 21h
jmp exit

cero:
mov ah,09h
lea dx,mensaje4
int 21h
jmp exit

exit:
mov ax,4c00h
int 21h
jmp exit

end start ;salida del programa


3. Desarrollar un código en lenguaje ensamblador que permita realizar una
multiplicación de los números a través de sumas sucesivas y una potencia a
través de multiplicaciones sucesivas (para ellos 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 archivos .asm
del programa.
RTA// 

;PROGRAMA MULTIPLICACIÓN
;JULIAN GIL RAMIREZ
;1020739214
;611
;MAYO 2019

.model small
.stack 100
.data

msj1 db 'Numero 1 de la multiplicacion y potencia: ','$'


msj2 db 13,10,'Numero 2 de la multiplicacion y la base: ','$'

msj3 db 13,10,'Multiplicacion: ','$'


msj4 db 13,10,'Potencia: ','$'
linea db 13,10,'$'
var1 db 0
var2 db 0
var3 db 0
var4 db 0
var5 db 0
var6 db 0
.code

.startup

call limpia
mov ah,09h
lea dx, msj1
int 21h

call leer
sub al,30h
mov var1,al
mov ah,09h
lea dx, msj2
int 21h

call leer
sub al,30h
mov var2,al
mov bl,var2

;MULTIPLICACION

mov ah,09h
lea dx,msj3
int 21h

mov al,var1
mov bl,var2
mul bl
mov dl,al
add dl,30h
mov ah,02h
int 21h

;POTENCIA

mov ah,09h
lea dx, msj4
int 21h

mov cl,var1
mov bl,var2
mov al,var2
sub cl,1
repetir:
mul bl
LOOP repetir

mov dl,al
add dl,30h
mov ah,02h
int 21h

.exit

;PROCEDIMIENTOS

salto proc near


mov ah,09h
lea dx,linea
int 21h
mov dl,00h
ret
salto endp

leer proc near


mov ah,01h
int 21h
ret
leer endp
limpia proc near
mov ah,00h
mov al,03h
int 10h
ret
limpia endp
end
ret

 
 

CONCLUSIONES

Se identificó con claridad las instrucciones y etiquetas del lenguaje ensamblador, lo


cual permitió interactuar con fluidez en el entorno EMU8086, donde se establecieron
las estructuras y procedimientos para la correcta compilación y ejecución de
programas básicos, dando respuesta a los objetivos planteados al inicio de este
ciclo.