Documentos de Académico
Documentos de Profesional
Documentos de Cultura
org 100h
comienzo:
mov si, x
mov al, msg2[si]
cmp msg[si], al ;comparar letra por letra las cadenas, si uno no coincide manda directamente a fi
n y termina el programa
jne fin:
cmp msg[si], "$" ;si es el final y el programa llega aca, quiere decir que son iguales
jz final:
inc x
loop comienzo
final:
mov dx, offset msg3
mov ah, 9
int 21h
fin:
ret
msg db "hello world $"
msg2 db "hello world $"
msg3 db "Son iguales $"
x dw 0
1 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
org 100h
mov si, 0 ;ponemos si en 0
comienzo:
mov al, msg2[0] ;copiar la primera letra de la palabra a al
cmp msg[si],"$" ;si es el fin de la cadena mandar a final
jz final
cmp msg[si], al ;comparar si encuentra la primera letra de la cadena
jne seguir
cmp msg2[di],"$" ;si es el fin de la cadena y el programa llego aca quiere decir que la cadena e
s parte de la palabra
jz resultado
seguir:
inc si ;para seguir recorriendo la palabra
loop comienzo ;bucle principal para recorrer palabra
resultado:
mov dx, offset msg3 ;copiar msg3 a dx
mov ah, 9 ;preparar ah con 9 para la interrupcion 21h
int 21h ;mostrar contenido en dx
final:
ret
msg db "Hola Mundo$"
msg2 db "ola$"
msg3 db "Si es subcadena$"
2 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
org 100h
mov si, 0 ;ponemos si en 0
comienzo:
cmp msg[si],"$" ;si es el fin de la cadena mandar a final
jz resultado
seguir:
inc si ;para seguir recorriendo la palabra
loop comienzo ;bucle principal para recorrer palabra
resultado:
mov dx, offset msg3 ;copiar msg3 a dx
mov ah, 9 ;preparar ah con 9 para la interrupcion 21h
int 21h ;mostrar contenido en dx
final:
ret
msg db "cerro$"
msg2 db "recanate$"
msg3 db "Si se encuentran todos los caracteres$"
3 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
ORG 100H
mov si, 0
lectura:
mov ah,1
int 21h
cmp al,13
jz resultado:
cmp al, 57 ;si tecla es mayor a 57 entonces ir a fin3 (tecla > 57)
ja fin3
cmp al,47 ;si tecla no es mayor a 47 ir a fin3 (tecla <= 47)
jng fin3
mov bx[si], al ;si es un digito entonces guardo en bx
inc si ;incrementa si
fin3:
jmp lectura
resultado:
mov ah,00h ;limpia la pantalla
mov al,03h
int 10h
mov bx[si], "$"
mov dx, offset bx
mov ah, 9 ;preparar ah con 9 para la interrupcion 21h
int 21h ;mostrar contenido en dx
ret
4 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
cadAnum:
cmp cad[si], "$"
jz seguir
mov bl, 10
mul bl
sub cad[si], '0'
add al, cad[si]
inc si
loop cadAnum
seguir:
mov cx, si
mov si, 0
mov bl, 8
pasar:
div bl ;dividir al con bl
mov oct[si], ah ;copiar a la cadena oct el resultado sobrante de la division
inc si ;incrementar si
loop pasar
fina:
cmp ah, 0
jnz final
mov oct[si], al
final:
;mov dx, offset res
;mov ah, 9 ;preparar ah con 9 para la interrupcion 21h
;int 21h ;mostrar contenido en dx
ret
cad db "64$"
oct db 0
5 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
mov bl, 10
mul bl
sub cad1[si], '0'
add al, cad1[si]
inc si
loop cadAnum
seguir:
mov aux1, al
;Convertir segunda cadena a numero
mov si, 0
mov al, 0
cadAnum2:
cmp cad3[si], "$"
jz seguir2
mov bl, 10
mul bl
sub cad3[si], '0'
add al, cad3[si]
inc si
loop cadAnum2
seguir2:
mov bl, al
mov al, aux1
;realizar operaciones normalmente teniendo ya los dos numeros decimales
cmp cad2, "-"
jz resta
cmp cad2, "+"
jz suma
cmp cad2, "*"
6 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
jz multi
cmp cad2, "/"
jz divi
resta:
sub al, bl
jmp fin
suma:
add al, bl
jmp fin
multi:
mul bl
jmp fin
divi:
div bl
jmp fin
fin:
mov bx, ax
mov ah,09
lea dx,msg
int 21h
mov ax, bx
call PRINT_NUM
ret
cad1 db "10$"
cad2 db "-"
cad3 db "2$"
aux1 db ?
aux2 dw ?
msg dw "El resultado es: $"
7 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
name "keybrd"
org 100h
; print a welcome message:
mov dx, offset msg
mov ah, 9
int 21h
;============================
; eternal loop to get
; and print keys:
wait_for_key:
; check for keystroke in
; keyboard buffer:
mov dh, pos
mov dl, pos
mov bh, 0
mov ah, 2
int 10h ;Movemos el cursor
mov al,'X'
mov bh,0
mov bl,1
mov cx,1
mov ah,09h
inc pos ;Imprimimos una x
int 10h
mov ah, 1
int 16h
jz wait_for_key
; get keystroke from keyboard:
; (remove from the buffer)
mov ah, 0
int 16h
; print the key:
mov ah, 0eh
int 10h
; press 'esc' to exit:
cmp al, 1bh
jz exit
jmp wait_for_key
;============================
exit:
ret
msg db "Type anything...", 0Dh,0Ah
db "[Enter] - carriage return.", 0Dh,0Ah
db "[Ctrl]+[Enter] - line feed.", 0Dh,0Ah
db "You may hear a beep", 0Dh,0Ah
db " when buffer is overflown.", 0Dh,0Ah
db "Press Esc to exit.", 0Dh,0Ah, "$"
8 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
pos db 1
end
name "arreglo-mayor"
org 100h
mov cx, 8
bucle1:
mov c, cx
mov bx, cx
mov cx, 9
bucle2:
mov si, cx
mov ah, v[si-1]
cmp ah,v[bx-1]
jnge seguir ;Si v[8] < v[7] no hacer nada, sino:
mov dh, v[bx-1] ;Copiar v[7] en dh
mov dl, v[si-1] ;Copiar v[8] en dl
mov v[bx-1], dl ;Copiar dl en v[7]
mov v[si-1], dh ;Copiar dh en v[8]
seguir:
loop bucle2
mov cx, c
loop bucle1
ret
v db 2,32,64,32,98,12,5,21,91
c dw 0
9 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
; Programa que calcula el MCD y MCM de dos numeros decimales (soporta numeros de 8 bits o 1 byte)
mov cont,1 ;inicializar variable cont en 1
bucle:
mov ah,0
mov al,cont
mov bl,nro1
div bl
cmp ah,0 ;si el resto de la division del contador con el nro1 es igual 0
je parte1
bc:
inc cont ;incrementar el contador
jmp bucle ;bucle hasta que encuentre el MCM
parte3: ;una vez que tengamos el MCM primero multiplicar nro1 * nro 2
mov al, nro1 ;con ese resultado, dividir por el MCM de nro1 y nro2 y tenemos el MCD
mov bl, nro2
mul bl
mov bl, MCM
div bl
mov MCD, al
ret ;fin del programa
10 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
mov cx,1
mov al, 13h
mov ah, 0
int 10h ; set graphics video mode.
bucle1:
mov dx, cx
mov al, color ;AL = pixel color
mov ah, 0ch ;Change color for a single pixel
int 10h ;set pixel
11 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
name "archivo3"
org 100h
mov al, 0 ;modo de acceso para abrir arhivo, modo lectura/escritura
mov dx, offset archivo ;offset lugar de memoria donde esta la variable
mov ah, 3dh ;se intenta abrir el archivo
int 21h ;llamada a la interrupcion DOS
jc error ; si se prendio la bandera c ir a error
error:
; ....
;leer archivo
leer:
mov bx, handle
mov cx, 1
mov dx, offset leido
mov ah, 3fh
int 21h
mostrar:
cmp aux, "a" ;compara si el anterior es a
jnz abajo
abajo:
mov aux, dl ;guardar en aux lo que hay en dl para comparar en la proxima vuelta
jmp leer
FIN:
;cerramos archivo
mov bx, handle
12 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
ret
13 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
→
←
14 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
Unite a la discusión...
15 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
16 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
Programación Paraguay
637 Me gusta
17 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
18 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
19 de 20 13/1/2020 09:46
Ejercicios resueltos en Ensamblador 8086 – Programación https://www.programacion.com.py/escritorio/ensamblador/ejercicios-resu...
20 de 20 13/1/2020 09:46