práctica 6 - Arquitectura y Tecnología de Computadores

Anuncio
Arquitectura y Tecnología de los Computadores.
Departamento de Automática.
Universidad de Alcalá.
ACTIVIDADES PARA LA PRÁCTICA 6
Num Ejer. Ejercicio
1
Introduce, ensambla y ejecuta con el Code View el código siguiente, presta atención especial
al valor que tendrá el registro BL al final del programa:
dosseg
.model small.
.stack 100h
.data
Texto DB ‘Introduce un número hexadecimal de cómo mucho dos cifras entre 0 y 9$’
.code
Inicio:
mov ax, @data
mov ds, ax
mov ah, 9
lea dx, Texto
int 21h
xor bl, bl
mov ah, 1
int 21h
mov cl, 4
mov bl, al
sub bl, 30h
shl bl, cl
int 21h
sub al, 30h
add bl, al
mov ah, 4Ch
int 21h
END Inicio
2
3
Modifica la actividad anterior para que lea un número de 4 cifras hexadecimales.
Escribe, ensambla y ejecuta el código siguiente:
dosseg
.model small
.stack 100h
.data
Numero DB 17h
.code
Inicio:
mov ax, @data
mov ds, ax
mov bh, Numero
mov cl, 4
shr bh, cl
mov ah, 2
mov dl, bh
add dl, 30h
int 21h
(Continúa)
ACTIVIDADES Y PRACTICA 6
Página 1 de 1
Arquitectura y Tecnología de los Computadores.
Departamento de Automática.
Universidad de Alcalá.
(Continúa)
mov dl, Numero
and dl, 0Fh
add dl, 30h
int 21h
4
5
6
mov ah, 4Ch
int 21h
END Inicio
¿Que hace el programa anterior?
Cambia el número 17h por los números 34h y 0Fh. ¿Qué ocurre?
Escribe, ensambla y ejecuta con el Code View el código siguiente:
dosseg
.model small
.stack 100h
.data
Texto1 DB "Este programa calcula una potencia", 13,10,'$'
Texto2 DB "Introduzca Base < 255: ", 13,10,'$'
Texto3 DB "Introduzca Exponente < 255: ", 13,10,'$'
Base DB ?
Exp DB ?
Resul DW ?
.code
convierte proc
sub al,30h
ret
convierte endp
potencia macro LaBase, Exponente
mov cx, Exponente
mov ax, 1
jcxz cero
otro:
mul LaBase
loop otro
cero:
endm
Inicio:
mov ax, @data
mov ds, ax
mov ah,9
lea dx,Texto1
int 21h
lea dx,Texto2
int 21h
mov ah,1 ;entrada desde teclado, devuelve en al el codigo ascii
int 21h
call convierte
mov Base, al
mov ah,9
lea dx,Texto3
int 21h
(Continúa)
ACTIVIDADES Y PRACTICA 6
Página 2 de 2
Arquitectura y Tecnología de los Computadores.
Departamento de Automática.
Universidad de Alcalá.
(Continúa)
mov ah,1 ;entrada desde teclado, devuelve en al el codigo ascii
int 21h
call convierte
mov Exp, al
potencia Base, Exp
mov Resul, ax
mov ah, 4Ch
int 21h
END Inicio
7
Visualiza las variables Base, Exp y Resul ( Ej. En la línea de comandos del Code View
> Wb Base l 1) ¿Es correcto el resultado?
Visualiza el valor de la pila antes y después de hacer las llamadas al procedimiento ( Ej. En
la línea de comandos del Code View > Wb SS:SP l 6) ¿Qué es lo que observas?
ACTIVIDADES Y PRACTICA 6
Página 3 de 3
Arquitectura y Tecnología de los Computadores.
Departamento de Automática.
Universidad de Alcalá.
PRÁCTICA 6
Procedimientos y Macros
Objetivos:
Los objetivos de la práctica son familiarizar al alumno con la realización
de código reutilizable, conjuntos de instrucciones que se pueden ejecutar varias
veces en un programa.
Medios:
Para la programación se emplea el Microsoft Assembler 5.1. El software
viene acompañado de un programa ensamblador (MASM) y su correspondiente
enlazador (LINK) que generará un fichero ejecutable (.EXE) que será el que
podrá ser ejecutado paso a paso mediante el simulador o ejecutado de golpe
como se hace habitualmente.
Práctica:
Realizar un programa que lea un número de 3 digitos por teclado y que informe
por pantalla si el nº es o no un nº primo.
Realizar un procedimiento para convertir el nº de ASCII a decimal.
Realizar una macro que verifique si el nº es o no un nº primo.
(Nota: Un nº es primo si únicamente al dividirlo entre la unidad y entre si mismo
da de resto 0, al dividirlo entre cualquier otro nº el resto es distinto de cero ).
dosseg
.model small
.stack 100h
.data
Numero DB 30h, 30h, 30h
Factor DB 10
primo DB “ES PRIMO”, 10, 13, ‘$’
no primo DB “ NO ES PRIMO”, 10, 13, ‘$’
.code
CONVERTIR PROC
.
.
(procedimiento)
.
CONVERTIR ENDP
ANALIZA MACRO
.
.
(Macro)
.
ENDM
Inicio:
mov ax, @data
ACTIVIDADES Y PRACTICA 6
Página 4 de 4
Arquitectura y Tecnología de los Computadores.
Departamento de Automática.
Universidad de Alcalá.
mov ds, ax
mov ah, 1
int 21h
mov Numero, al
int 21h
mov Numero[1], al
int 21h
mov Numero[2], al
int 21h
CALL CONVERTIR
ANALIZA
mov ah, 4Ch
int 21h
END Inicio
ACTIVIDADES Y PRACTICA 6
Página 5 de 5
Descargar