Sei sulla pagina 1di 17

ARQUITECTURA DE COMPUTADORES

TAREA 3
TRABAJO COLABORATIVO 3

GIOVANNI RUIZ GAMBOA COD 76.331.370

GRUPO

301302_29

TUTOR

ANYELO GERLEY QUINTERO

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

MAYO 2019
Tabla de contenido
1 INFOGRAFIA ........................................................................ 3
2 Número par, impar o cero ...................................................... 5
2.1 Código desarrollado numero par, impar o cero ..................... 5
2.1.1 Grafica 1 evidencia código ........................................... 7
2.2 Ejecución del programa captura de pantalla 1 No 6 .............. 8
2.3 Ejecución del programa captura de pantalla 2 No 0 .............. 9
2.4 Ejecución del programa captura de pantalla 2 No 7 .............. 9
3 Multiplicación y potenciación ................................................ 10
3.1 Código desarrollado multiplicación y potencia .................... 10
3.1.1 Grafica 1 evidencia código Multiplicación y Potencia ....... 13
3.2 Ejecución del programa captura de pantalla 1 No 5 y 9 ....... 16
3.3 Ejecución del programa captura de pantalla 1 No 7 y 2 ....... 16
3.4 Ejecución del programa captura de pantalla 1 No 1 y 2 ....... 17
1. Explicar mediante una infografía 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). Cada
instrucción debe tener una definición y 1 ejemplo en lenguaje
ensamblador. NO se aceptan enlaces de ningún tipo, todo debe
ser subido mediante un documento al foro.

1 INFOGRAFIA
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.

2 Número par, impar o cero

2.1 Código desarrollado número par, impar o cero

; Nombre del Autor: Giovanni Ruiz Gamboa


; Codigo: 76.331.370
; Grupo No:29
; Fecha:01 Mayo 2019
; Unad

.model samll ;tipo de memoria a utilizar


.stack 64 ;tamaño de pila
.data

; variables

var1 dw 0 ;
var2 db 2 ;

msg1 db 'Digite un numero:', '$';permite al usuario ingresar el nuemro


msg2 db 13,10, " Numero = cero.", '$' ;si el numero digitado es cero
msg3 db 13,10, " Numero = Par. ", '$' ;si el numero digitado es par
msg4 db 13,10, " Numero = Impar.", '$'; si el nuemro digitado es impar

.code
inicio proc far ;inicio

mov ax, @data ;direccionamiento


mov ds, ax

; pantalla
mov ah, 00
mov al, 03h
int 10h

; mostrar mensaje a usuario


mov ah, 09
lea dx, msg1
int 21h

; leer y convertir el numero para verlo en pantalla


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

mov var1, ax

; compara = cero
cmp al,0
JE mostrarCero

; compara = par
mov ax, var1
div var2

; compara = impar
cmp ah,0
JG mostrarImpar
; si no es impar es par
jmp mostrarPar
; = cero mostar el msg2
mostrarCero:
mov ah, 09
lea dx, msg2
int 21h
jmp fin

; = par mostrar el msg3


mostrarPar:
mov ah, 09
lea dx, msg3
int 21h
jmp fin

; = impar mostrar el msg4


mostrarImpar:
mov ah, 09
lea dx, msg4
int 21h
jmp fin

; salir
fin:
mov ah, 4ch
int 21h

inicio endp
end

2.1.1 Grafica 1 evidencia código


2.2 Ejecución del programa captura de pantalla 1 No 6
2.3 Ejecución del programa captura de pantalla 2 No 0

2.4 Ejecución del programa captura de pantalla 2 No 7


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.

3 Multiplicación y potenciación

3.1 Código desarrollado multiplicación y potencia

; Nombre: GIOVANNI RUIZ GAMBOA


; Codigo: 76.331.370
; Grupo No:29
; Fecha:01 mayo 2019
; Unad

.model samll ;Memoria que se utilizara


.stack 64 ;Tamano a la pila
.data

;Codigo

;Variables
prn db 0
sgn db 10
resmult db 00

base db 00
exp db 00
respot db 00

msg0 db 13, 10, 'Digite primer numero: ', '$'


msg1 db 13, 10, 'Digite segundo nuemro: ', '$'
msg2 db 13, 10, 'la Multiplicacion es = : ', '$'
msg3 db 13, 10, 'La Potencia es = : ', '$'
lineavacia db 13, 10, 13, 10, " ", '$'

; Otras Variables a utilizar


c db 0
d db 0
u db 0

.code
inicio proc far ;Inicio

mov ax, @data ;Direccionamiento


mov ds, ax
;Pantalla
mov ax, 00
mov al, 03h
int 10h

; Muestra el mensaje
mov ah,09h
lea dx, msg0
int 21h
; Lee Numero
mov ah, 01h
int 21h
sub al, 30h
; Copiar numero a base potencia y mutiplicacion
mov prn, al
mov exp, al

; Lineas para separar


mov ah, 09
lea dx, lineavacia
int 21h

mov ax,@data
mov ds,ax

; mostrar mensaje a usuario de exponente


mov ah, 09
lea dx, msg1
int 21h
; Lee exponente
mov ah,01h
int 21h
sub al, 30h
; Copiar numero a exponenete potencia y multiplicacion
mov sgn,al
mov base,al

; Lineas para separar


mov ah,09
lea dx, lineavacia
int 21h

;Bucle Multiplicacion

mov cl, sgn


mov al, 0
mov bl, prn
cmp sgn, 0
je finmult:
multiplicacion:
add al, bl
loop multiplicacion
finmult:
mov resmult, al
;Bucle Potencia

mov cl, base


mov al, 1
mov bl, exp
cmp base, 0
je finpot:
potenciacion:
mul bl
loop potenciacion
finpot:
mov respot, al

mov ax, @data


mov ds, ax

; Imprimir mensaje multiplicacion


mov ah, 09
lea dx, msg2
int 21h

;Mostrar resultado de la multiplicacion

mov al,resmult
aam
mov u,al
mov al,ah

aam
mov c,ah
mov d,al

mov ah,02h ; caracter


mov dl,c
add dl,30h
int 21h ; Muestra 1

mov dl,d
add dl,30h
int 21h ; Muestra 9

mov dl,u
add dl,30h
int 21h ; imprime 8

; Linea separacion
mov ah,09
lea dx, lineavacia
int 21h

mov ax, @data


mov ds,ax

; Muestra mensaje de potencia


mov ah,09
lea dx, msg3
int 21h

; Muestra resultado de la potencia

mov al,respot ;
aam
mov u,al
mov al,ah

aam
mov c,ah
mov d,al

mov ah,02h ; caracter


mov dl,c ; muevo las centenas a DL para poder imprimir
add dl,30h ; sumo 30h a DL para imprimir el numero real y no otro caracter
int 21h ; Muestra 1

mov dl,d
add dl,30h
int 21h ; Muestra 9

mov dl,u
add dl,30h
int 21h ; Muestra 8

; salir
mov ax,4c00h
int 21h

inicio endp
end

3.1.1 Grafica 1 evidencia código Multiplicación y Potencia


3.2 Ejecución del programa captura de pantalla 1 No 5 y 9

3.3 Ejecución del programa captura de pantalla 1 No 7 y 2


3.4 Ejecución del programa captura de pantalla 1 No 1 y 2

Potrebbero piacerti anche