El documento describe un programa que solicita al usuario ingresar un número y determina si es mayor, menor o igual a 5. También muestra ejemplos del uso de instrucciones como MOV, CMP y JMP para manipular banderas y realizar saltos condicionales. Explica cómo declarar mensajes y cómo el programa itera pidiendo un nuevo número hasta que se ingresa un carácter no numérico.
1. 1) El programa nos pide que ingresemos un numero para comprobar si el numero
ingresado es mayor a 5 o menor, de la misma manera nos dice que si
queremos salir del programa tecleemos cualquier otro carácter que no sea un
número.
2) -la instrucción (mov dx) es lo que nos permite poner hasta donde va a llegar la
limpieza de la pantalla.
-La ultima instrucción (int 21h) llama al BIOS.
-La instrucción (mov ah) es lo que nos permite desplegar el mensaje.
- msg1 db "enter a number or any other character to exit: $"
equal_5 db " is five! (equal)", 0Dh,0Ah, "$"
below_5 db " is below five!" , 0Dh,0Ah, "$"
above_5 db " is above five!" , 0Dh,0Ah, "$"
Este es un ejemplo de cómo declarar un mensaje, el mensaje es lo que está
escrito entre comillas y termina con “$”.
-La instruccion (mov ah,02h) es lo que nos permite mover el cursor.
- Instrucciones de transferencia Son utilizadas para mover los contenidos de
los operandos. Cada instrucción se puede usar con diferentes modos de
direccionamiento.
MOV.
- JMP label
Saltar hacia la dirección label.
- JB etiqueta/JNAE etiqueta
Saltar a etiqueta si es menor.
- JA etiqueta/JNBE etiqueta
Saltar a etiqueta si es mayor.
3) nombre "banderas"
org 100h
; esta muestra muestra cómo conjuntos de instrucciones cmp las banderas.
; por lo general la instrucción de cmp es seguida de cualquier pariente
; instrucción de salto como: je, ja, jl, jae...
; se recomienda hacer clic en "banderas" y "analizar"
; para mejor expirience visual antes de andar a través de este código.
; (firmado/no firmado)
; 4 es igual a 4
mov ah, 4
mov al, 4
cmp ah, al
nop
; (firmado/no firmado)
; 4 Está por encima de y superior a 3
mov ah, 4
mov al, 3
cmp ah, al
nop
2. ; -5 = 251 = 0fbh
; (Firmado)
; 1 Es superior a -5
mov ah, 1
mov al, -5
cmp ah, al
nop
; (Sin firmar)
; 1 es inferior a 251
mov ah, 1
mov al, 251
cmp ah, al
nop
; (Firmado)
; -3 es inferior a -2
mov ah, -3
mov al, -2
cmp ah, al
nop
; (Firmado)
; -2 es superior a -3
mov ah, -2
mov al, -3
cmp ah, al
nop
; (Sin signo)
; 255 es superior a 1
mov ah, 255
mov al, 1
cmp ah, al
nop
; ahora un pequeño juego:
juego:
mov dx, offset msg1
mov ah, 9
int 21h
; lea el carácter en al:
mov ah, 1
int 21h
cmp al, '0'
jb stop
cmp al, '9'
3. ja stop
cmp al, '5'
jb below
ja above
mov dx, offset equal_5
jmp print
Debajo: mov dx, offset below_5
jmp print
Sobre: mov dx, offset above_5
Imprimir: mov ah, 9
int 21h
jmp juego ; Bucle.
parada: ret; parada
msg1 db " Introduzca un número o cualquier otro carácter para salir: $"
equal_5 db " es cinco! (igual)", 0Dh,0Ah, "$"
below_5 db " es menor a cinco!" , 0Dh,0Ah, "$"
above_5 db " es mayor a cinco!" , 0Dh,0Ah, "$"
4)
Codigo del programa:
En este programa la idea es que aparezca el nombre de los que hicieron el trabajo y
uno pueda ingresar un numero y le diga si es igual, menor o mayor a cinco, también
mostraremos el desarrollo de las banderas en estos casos.
4. Al ejecutar el programa se puede ver un cambio en IF automáticamente para el inicio
de la operación y al hacerlo correr ocurre lo siguiente.
Ocurre una variación en IF y se pone en 0 ya que se inicio la ejecución.
5. Desarrollando lo que dice el programa, ocurre una variación en AF, SF y CF en las
banderas.
De la misma forma ocurre sucesivamente mientras mas avanzamos por el programa.
6. Podemos apreciar las variaciones en banderas de todos los tipos, hasta que lo damos
por terminado.
Finalizando el programa con cualquier carácter que no sea un numero.