Figura 1 (ejercicio lab 5 6)
En la figura 1 se muestra el código que constituye el programa que cuenta el
número de veces que se presiona la tecla “a” esta cuenta será almacenado en el
registro contador es decir cx.
En este programa se hizo uso de interrupciones 16 h, sub-función 00h, obtiene la
tecla presionada en el teclado y guarda en AL el carácter ASCII correspondiente a la
tecla. También se hizo uso de la interrupción 10h, sub-función 0Eh las cuales
muestran el carácter en pantalla.
6. Haga un programa que cuente las veces que se presiona la tecla “a”, tome en
cuenta que el código ASCII para la tecla “a” es 61h. Utilice un registro para
llevar la cuenta.
6. Haga un programa que cuente las veces que se presiona la tecla “a”, tome en
cuenta que el código ASCII para la tecla “a” es 61h. Utilice un registro para
llevar la cuenta.
Figura 1 (ejercicio lab 5 6)
En la figura 1 se muestra el código que constituye el programa que cuenta el
número de veces que se presiona la tecla “a” esta cuenta será almacenado en el
registro contador es decir cx.
En este programa se hizo uso de interrupciones 16 h, sub-función 00h, obtiene la
tecla presionada en el teclado y guarda en AL el carácter ASCII correspondiente a la
tecla. También se hizo uso de la interrupción 10h, sub-función 0Eh las cuales
muestran el carácter en pantalla.
El contador aumenta solo si al verificar el registro al el valor en hexadecimal es 61
que es el que pertenece a la carácter a en ASCII.
(Tabla obtenida del libro sistema digitales y aplicaciones .Ronal Tocci, pág. 40)
Para ello se hizo uso de la función CMP que es utilizada para verificar si es el
carácter ‘a’ si es de esta forma mediante la instrucción de salto jnz repite es ciclo
para introducir por teclado otra vez otro carácter, y si es igual entonces se
incrementa el registro contador. La función de salto jmp. es para realizar este
programa de manera cíclica.
Figura 2
En la figura 2 se verifica que la palabra olimpiada se repite 2 veces el carácter “a”
así como se muestra en el contador (CX).
8. Haga un programa que calcule el número menor de una lista de 20 números
guardados en localidades de memoria consecutivas y muestre en pantalla el
mensaje: “el número menor de la lista es:” y luego retorne el resultado.
Figura 3
En la figura 3 se muestra el código el cual consiste en
elegir el número menor del arreglo declarado “Lista”. Este
consiste en tomar el primer número del arreglo y
almacenarlo en registro al y después almacenarlo en una
variable denominada en este programa como “min” estas
operación se realiza mediante las instrucciones de la
línea [Link] de esto se declara la cantidad de
números que componen el arreglo con el registro CX ya
que este permite llevar el control de los ciclos a realizarse obteniéndose de esta
forma los siguientes números después del primero.
La función para manejo de cadenas lodsb permite cargar el elemento apuntado por
SI y moverlo a AL si es un byte y si es una cadena a AX,posteriormente se procede
a comparar los demás números con el de la variable “min” mediante la función de
salto condicional jae (Salta si está arriba o es igual o salta si no está por debajo ),es decir si
al es mayor o igual salta a realizarse el ciclo 1 que es el que consiste en seleccionar
el siguiente elemento del arreglo y se mantiene la variable “min” intacta,si al
comparar al es menor que “min” entonces este valor al que ahora es el menor lo
carga en “min” y asi sucesisavente hasta comparar todos los números del arreglo y
de esta manera se obtiene el numero menor del arreglo de 20 numeros antes
declarado.
Este numero se puede visualizar en hexadecimal en las variables del emulador que
se encuentran en la barra del menú principalviewvariable
Ahí se puede observar el valor que tomo la variable “min” que su valor es igual a 3
que es 03h en hexadecimal que a simple inspección se puede notar al observa el
arreglo “Lista” esto se puede observar en la figura 4.
Figura 4