Ensamblador
Enviado por Karla Toral • 11 de Marzo de 2019 • Apuntes • 38.687 Palabras (155 Páginas) • 81 Visitas
Benemérita Universidad Autónoma de Puebla
Facultad. Ingeniería en Ciencias de la Computación
Materia. Ensamblador
PROYECTO
Profesor. Miguel A. Vargas Lomelí
Alumna. Karla Toral Cuachayo
[pic 1]
INDICE
- Programa que suma dos dígitos……………………………….....3
- Programa que dado dos dígitos diga cuál es mayor y menor….5
- Programa que lee un número de dos cifras y código ascci…….7
- Programa que compara tres dígitos……………………………....9
- Programa de las tablas de multiplicar del 1 al 10……………….13
- Programa con un numero diga si es impar o par……………….17
- Programa que calcula 5 calificaciones y dice si acredita o no…19
- Programa que determine si un número (1-99) es primo o no….25
- Programa que muestra los números pares del (2-100)………...28
- Programa que muestra los números impares (1-99)……..30
- Programa de asteriscos……………………………………..32
- Programa que manda un mensaje de “hola mundo”……..34
- Programa del juego del gato……………………………….36
; Programa que suma dos dígitos
; Plantilla programa ensamblador
; Definimos Segmentos
Pila Segment para stack 'stack'
Pila ends
Datos segment para 'data'
num1 db 0
num2 db 0
num3 db 0
mensaje1 db "Deme el primer numero: $"
mensaje2 db 10, 13, "Deme el segundo num: $"
mensaje3 db 10, 13, "La suma es: $"
mensaje4 db 10,13, "opcion invalida$"
Datos ends
Codigo segment para 'code'
inicio proc far
assume ss:Pila, ds:Datos, cs:Codigo
mov ax, Datos ; guarda el PSP y direcciona a memoria
mov ds, ax ; PSP: Program Segment Prefix
; Parte del codigo para resolver el problema
;Leer num1 desde el teclado
mov ah, 09h
mov dx, offset mensaje1
int 21h
mov ah, 01h
int 21h
mov num1, al
;validez
cmp num1,48
jl fin
cmp num1,57
jg fin
sub num1, 30h
;leer num2
mov ah, 09h
mov dx, offset mensaje2
int 21h
mov ah, 01h
int 21h
mov num2, al
;validez
cmp num2,48
jl fin
cmp num2,57
jg fin
sub num2, 30h
;Realiza la suma
mov al, num2
add num1, al
mov ah, 09h
mov dx, offset mensaje3
int 21h
cmp num1, 9
jg salto1
;mostramos en pantalla el resultado num1
add num1, 30h
mov ah, 02h
mov dl, num1
int 21h
jmp salida
salto1: mov ah, 02h
mov dl, 31h
int 21h
add num1, 38
mov ah, 02h
mov dl, num1
int 21h
fin:
mov ah, 09h
mov dx, offset mensaje4
int 21h
; Salimos al sistema operativo
salida: mov ah, 4ch
int 21h
inicio endp
Codigo ends
end inicio
; Programa compara dos numero dice el mayor y menor
; Plantilla programa ensamblador
; Definimos Segmentos
Pila Segment para stack 'stack'
Pila ends
Datos segment para 'data'
num1 db 0
num2 db 0
mensaje1 db "Deme el primer numero: $"
mensaje2 db 10, 13, "Deme el segundo numero: $"
mensaje3 db 10, 13, "El numero mayor es: $"
mensaje4 db 10, 13, "El numero menor es: $"
mensaje5 db 10,13, "Opcion invalida$"
Datos ends
Codigo segment para 'code'
inicio proc far
assume ss:Pila, ds:Datos, cs:Codigo
mov ax, Datos ; guarda el PSP y direcciona a memoria
...