Professional Documents
Culture Documents
ARQUITECTURA DE COMPUTADORES
TUTOR:
ANGELO GERLEY QUINTERO
PRESENTADO POR:
OSCAR JAVIER DELGADO Código: 80217860
301302_36
INGENIERIA DE SISTEMAS
CEAD JOSE ACEVEDO Y GOMEZ
BOGOTA D.C MAYO DE 2017
INTRODUCCION
1. Explicar mediante un gráfico en que consiste las instrucciones tipo salto del
enguaje Ensamblador (Direcciones corta, cercana y lejana, etiquetas, saltos
incondicionales, saltos condicionales, instrucciones de testeo, decisiones y
bucles)
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.
Generar tres capturas por pantalla de la ejecución del programa. Anexar
Archivo .asm del programa. Nota: No utilizar Simuproc.
Se utiliza el programa GUI Turbo Assembler x64 para la solución del problema
.model small
.stack
.data
cadena db 10,13, 'Digitar un numero:$'
num_impar db 10,13, 'El numero digitado es Impar$'
num_par db 10,13,'El numero digitado es Par$'
num_cero db 10,13, 'El numero digitado es Cero$'
.code
inicio:
mov dx,@data
mov ds,dx
lea dx,cadena
mov ah,09h
int 21h
call lee_numeros
call comparar
lee_numeros:
mov ah,01
int 21h
sub al,30h
ret
comparar:
cmp AL,0h
je cero
and al,01h
cmp al,01h
jz impar
jmp par
impar:
lea dx, num_impar
mov ah,09
int 21h
jmp inicio
par:
lea dx, num_par
mov ah,09
int 21h
jmp inicio
cero:
lea dx,num_cero
mov ah,09
int 21h
jmp inicio
end inicio
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; Generar tres capturas por pantalla de la ejecución del
programa. Anexar Archivo .asm del programa. Nota: No utilizar Simuproc.
Se utiliza el programa GUI Turbo Assembler x64 para la solución del problema.
Código:
;Ejercicio Numero 3
;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; Generar tres capturas por
pantalla de la ejecución del programa.
;Anexar Archivo .asm del programa. Nota: No utilizar Simuproc
;Autor: OSCAR JAVIER DELGADO VILLAMIL
;C?digo: 80217860
.data
linea db 13,10,'$'
v1 db 0
v2 db 0
.code
.startup
call limpiar
mov ah,09h
lea dx, msg1
int 21h
call leer
sub al,30h
mov v1,al
mov ah,09h
lea dx,msg2
int 21h
call leer
sub al,30h
mov v2,al
mov cl, v1
sub cl,1
repetir:
add al,v2
loop repetir
mov ah,09h
lea dx,msg3
int 21h
mov dl,al
add dl,30h
mov ah,02h
int 21h
mov cl,v1
mov bl,v2
mov al,v2
sub cl,1
repetir2:
mul bl
loop repetir2
mov ah,09h
lea dx,msg4
int 21h
mov dl,al
add dl,30h
mov ah,02h
int 21h
.exit