Ensamblador
Karla ToralApuntes11 de Marzo de 2019
38.687 Palabras (155 Páginas)100 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
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
; se mueve num1 a al y num 2 a ah
mov al, num1
mov ah, num2
;compara num1 con num2
...