Está en la página 1de 14

Problemas en Lenguaje Ensamblador

;Ejemplo 1.- Visualizar un carácter

.model small
.stack
.code
inicio:
mov dl,41H ; letra A
mov ah,2
int 21h
mov ax,4c00h
int 21h
end inicio

;Ejemplo 2.- Visualizar una cadena de caracteres.


;La cadena finaliza con el carácter 24H que es “$”

Model small
.stack 10
.data
Texto DB "Programa en Ensalmblador", 0Dh, 0AH
DB "Mi Nombre es Jorge", 0DH, 0AH
DB "Fin del Programa", 0DH, 0AH, 024H
.code
Inicio:
mov ax, seg texto
mov ds, ax
mov dx, offset texto
mov ah, 09h
Int 21H
mov ax,4c00h
int 21H
End inicio
End

; Ejemplo 3.- Ingresar un carácter y visualizarlo

.model small
.stack
.data
texto1 db "Ingresar un carcater y visualizarlo",10,13,"$"
texto2 db 10,13,"Ingresar un caracter=$"
texto3 db 0ah, 0dh, "El caracter ingresado=$"
.code
inicio:
mov ax, seg texto1
mov ds, ax
mov dx, offset texto1
mov ah, 9
int 21h

mov ax, seg texto2


mov ds, ax
mov dx, offset texto2
mov ah, 9
int 21h
mov ah,01 ; Ingresar un caracter. Se almacena en AL
int 21h

mov bl, al

mov ax, seg texto3


mov ds, ax
mov dx, offset texto3
mov ah,9
int 21h

mov dl, bl
mov ah,02h
int 21h
mov ax,4c00h
int 21h
end inicio
End

;Ejemplo 4 Suma 2 números de 1 digito

TITLE SUMAR 2 NUMEROS


.model small
.stack 100
.data
texto1 db "Programa para Suma 2 numeros", 0ah, 0dh,"$"
texto2 db 0dh, 0ah, "Ingresar el numero 1=$"
texto3 db 0dh, 0ah, "Ingresar el numero 2=$"
texto4 db 0dh, 0ah, "La suma de los numeros=$"
num1 db 0
num2 db 0
suma db 0
.code
Inicio:
mov ax, seg texto1
mov ds,ax
mov dx, offset texto1
mov ah,09h
int 21h

;Ingreso el n umero 1
mov ax, seg texto2
mov ds,ax
mov dx, offset texto2
mov ah,09h
int 21h
mov ah,01
int 21h
sub al, 30h

mov num1, al ;almacena el numero 1

mov ax, seg texto3


mov ds,ax
mov dx, offset texto3
mov ah,09h
int 21h
mov ah, 01
int 21h
sub al, 30h

mov num2, al ;almacena el numero 2

;Operacion Suma
mov al, num1
add al, num2
mov suma, al

mov ax, seg texto4


mov ds,ax
mov dx, offset texto4
mov ah,09h
int 21h
mov bl, suma
add bl,30H
mov dl,bl
mov ah, 02
int 21h
mov ax,4c00h
int 21h
END Inicio
END

;Ejemplo 5 Sumar 2 números de 1 digito con Ajuste de salida de 2 dígitos

.model small
.stack 64
.data
num1 db 0
num2 db 0
suma dw 0
texto1 db "Suma de 2 numeros ",10,13,"$"
texto2 db 10,13,"Ingresar el numero 1=$"
texto3 db 10,13,"Ingresar el numero 1=$"
texto4 db 10,13,"La suma de los numeros=$"
.code
Inicio:
mov ax, @data
mov ds, ax

mov dx, offset texto1


mov ah, 9
int 21h

mov dx, offset texto2


int 21h

mov ah,1
int 21h

mov num1, al ;Ingreso del primer numero

mov dx, offset texto3


mov ah,9
int 21h

mov ah,1
int 21h

mov num2, al ;Ingreso del numer 2

;Procedimiento de Suma con Ajuste


mov ax, 0h
mov al, num1
add al, num2

AAA ;Procedimiento de ajuste. Decena en AH y Unidades en AL


mov bl,al
mov bh,ah

mov suma, bx ; Se almacena en la variable suma

;Visualizar suma
mov dx, offset texto4
mov ah, 9
int 21h

mov cx, suma


add cx, 3030h
mov dl, ch
mov ah, 02
int 21h

mov dl,cl
int 21h

;Fin del Programa


mov ax, 4c00h
int 21h
End Inicio
END

;Ejemplo 6 Multiplicación de 2 números de 1 dígito con salida de 1 dígito

.model small
.stack 64
.data
num1 db 0
num2 db 0
mult dw 0
texto1 db "Producto de 2 numeros ",10,13,"$"
texto2 db 10,13,"Ingresar el numero 1=$"
texto3 db 10,13,"Ingresar el numero 1=$"
texto4 db 10,13,"El producto de los numeros=$"
.code
Inicio:
mov ax, @data
mov ds, ax

mov dx, offset texto1


mov ah, 9
int 21h

mov dx, offset texto2


int 21h

mov ah,1
int 21h
sub al, 30h

mov num1, al ;Ingreso del primer numero

mov dx, offset texto3


mov ah,9
int 21h

mov ah,1
int 21h
sub al, 30h

mov num2, al ;Ingreso del numer 2

;Procedimiento de Producto
mov ax,0
mov al, num1
mul num2

mov mult, ax

;Visualizar Producto
mov dx, offset texto4
mov ah, 9
int 21h

mov cx, mult


add cx, 3030h
mov dl, ch
mov ah, 02
int 21h

mov dl,cl
int 21h

;Fin del Programa


mov ax, 4c00h
int 21h
End Inicio
END

;Ejemplo 7 Multiplicación de 2 números de 1 digito con salida de 2 dígitos - Ajustado

.model small
.stack 64
.data
num1 db 0
num2 db 0
mult dw 0
texto1 db "Producto de 2 numeros ",10,13,"$"
texto2 db 10,13,"Ingresar el numero 1=$"
texto3 db 10,13,"Ingresar el numero 1=$"
texto4 db 10,13,"El producto de los numeros=$"
.code
Inicio:
mov ax, @data
mov ds, ax

mov dx, offset texto1


mov ah, 9
int 21h

mov dx, offset texto2


int 21h

mov ah,1
int 21h
sub al, 30h

mov num1, al ;Ingreso del primer numero

mov dx, offset texto3


mov ah,9
int 21h

mov ah,1
int 21h
sub al, 30h

mov num2, al ;Ingreso del numer 2

;Procedimiento de Producto
mov ax,0
mov al, num1
mul num2

AAM

mov mult, ax

;Visualizar Producto
mov dx, offset texto4
mov ah, 9
int 21h

mov cx, mult


add cx, 3030h
mov dl, ch
mov ah, 02
int 21h

mov dl,cl
int 21h

;Fin del Programa


mov ax, 4c00h
int 21h
End Inicio
END

;Ejemplo 8 Suma de 2 numeros de 2 digitos

.MODEL small
.stack 64
.data
texto1 db "Suma de 2 numneros de 3 digitso$"
texto2 db 10,13,"Ingresar el numero 1=$"
texto3 db 10,13,"Ingresar el numero 2=$"
texto4 db 10,13,"La suma de los numeros=$"
num1 db 0,0
num2 db 0,0
suma db 0,0,0
.code
Inicio:
mov ax, @data
mov ds, ax

Lea dx, texto1


mov ah, 9
int 21h

;Ingresar numero 1
Lea dx, texto2
int 21h

mov ah, 1
int 21h
sub al, 30h
mov num1[1], al
int 21h
sub al, 30h
mov num1[0], al

;Ingresamos el numero 2
Lea dx, texto3
mov ah,9
int 21h

mov ah, 1
int 21h
sub al, 30h
mov num2[1], al
int 21h
mov num2[0], al

;Operacion Suma
mov ax,0
mov al, num1[0]
add al, num2[0]
AAA
mov suma[0],al
mov al, ah
add al, num1[1]
add al, num2[1]
mov ah,0
AAA
mov suma[1], al
mov suma[2], ah

mov dx, offset texto4


mov ah, 09
Int 21h

mov dl, suma[2]


add dl, 30h
mov ah, 2
int 21h

mov dl, suma[1]


add dl, 30h
mov ah, 2
int 21h

mov dl, suma[0]


add dl, 30h
mov ah, 2
int 21h
;Fin del Programa
mov ax, 4c00h
int 21h
End Inicio
END

;Ejemplo 9 Suma de 2 números de 3 dígitos

.MODEL small
.stack 64
.data
texto1 db "Suma de 2 numneros de 3 digitso$"
texto2 db 10,13,"Ingresar el numero 1=$"
texto3 db 10,13,"Ingresar el numero 2=$"
texto4 db 10,13,"La suma de los numeros=$"
num1 db 0,0,0
num2 db 0,0,0
suma db 0,0,0,0
.code
Inicio:
mov ax, @data
mov ds, ax

Lea dx, texto1


mov ah, 9
int 21h

Lea dx, texto2


int 21h
mov cx,3
mov si, 0
Ingresar1:
mov ah, 1
int 21h
sub al, 30h
mov num1[si], al
inc si
Loop Ingresar1

Lea dx, texto3


mov ah,9
int 21h

mov cx,3
mov si, 0
Ingresar2:
mov ah, 1
int 21h
sub al, 30h
mov num2[si], al
inc si
Loop Ingresar2

mov cx, 3
mov si,0

;Operacion
mov ax,0
mov al, num1[0]
add al, num2[0]
AAA
mov suma[0],al
mov al, ah
add al, num1[1]
add al, num2[1]
mov ah,0
AAA
mov suma[1],al

mov al, ah
add al, num1[2]
add al, num2[2]
mov ah, 0
AAA

mov suma[2], al
mov suma[3], ah

mov dx, offset texto4


mov ah, 09
Int 21h

mov si,3
mov cx,4
VisualizarSuma:
mov dl, suma[si]
add dl, 30h
dec si
mov ah, 2
int 21h
Loop VisualizarSuma
mov cx, 3
mov si, 0

;Visualizar:
; mov dl, num1[si]
; inc si
; mov ah, 2
; int 21h
; Loop Visualizar

; mov cx, 3
; mov si, 0
;Visualizar2:
; mov dl, num2[si]
; inc si
; mov ah, 2
; int 21h
; Loop Visualizar2

mov ax, 4c00h


int 21h
End Inicio
END

;Ejemplo 10 4 operaciones con 2 números

.model small
.stack 64
.data
num1 db 0
num2 db 0
suma db 0
resta db 0
mult db 0
divi db 0
texto db "Programa de las 4 operaciones con 2 numeros",0dh,0ah,"$"
texto1 db 0dh,0ah,"Ingresar el numero 1=$"
texto2 db 0dh,0ah,"Ingresar el numero 2=$"
textos db 0dh,0ah,"La suma de los numeros=$"
textor db 0dh,0ah,"La resta de los numeros=$"
textom db 0dh,0ah,"La multiplicacio de los numeros=$"
textod db 0dh,0ah,"La division de los numeros=$"
.code
Inicio:
mov ax, seg texto
mov ds,ax
mov dx, offset texto
mov ah,09
int 21h

mov ax, seg texto1


mov ds, ax
mov dx, offset texto1
mov ah, 09
int 21h
mov ah,1
int 21h
sub al, 30h
mov num1,al

mov ax, seg texto2


mov ds, ax
mov dx, offset texto2
mov ah, 09
int 21h
mov ah,1
int 21h
sub al, 30h
mov num2,al

mov al, num1


add al, num2
mov suma, al

mov al, num1


sub al, num2
mov resta, al

mov al, num1


mul num2
mov mult, al

mov al, num1


div num2
mov divi,al

mov dx, offset textos


mov ah,09
int 21h
mov dl,suma
add dl, 30h
mov ah, 02
int 21h

mov dx, offset textor


mov ah,09
int 21h
mov dl,resta
add dl, 30h
mov ah, 02
int 21h

mov dx, offset textom


mov ah,09
int 21h
mov dl,mult
add dl, 30h
mov ah, 02
int 21h

mov dx, offset textod


mov ah,09
int 21h
mov dl,divi
add dl, 30h
mov ah, 02
int 21h

mov ax,4c00h
int 21h
End Inicio

También podría gustarte