PONTIFICA UNIVERSIDAD CATOLICA DEL ECUADOR SEDE IBARRA
NOMBRE: BYRON CHICAIZA
NIVEL: 5to “SISTEMAS”
FECHA: 15/04/2041
INSTALACION DE EMU8086
Damos clic en siguiente
Elegimos la ruta para instalar
Presionamos en instalar
Emu8086
El Emulador EMU8086 es el primer programa que se utiliza en el curso de Microprocesadores que
imparte la Universidad Don Bosco; se ha elegido este emulador porque posee una interfaz de
usuario muy amistosa que permite familiarizarse con los fundamentos de la programación en
lenguaje ensamblador de forma muy intuitiva, aparte de eso brinda una serie de recursos para
ejecutar y depurar los programas
EJEMPLO DE HOLA MUNDO
Código del Ejemplo
name "Hola Mundo"
org 100h
mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3)
int 10h ; do it!
mov ax, 1003h
mov bx, 0
int 10h
mov ax, 0b800h
mov ds, ax
mov [02h], 'H'
mov [04h], 'O'
mov [06h], 'l'
mov [08h], 'a'
mov [0ah], ','
mov [0ch], 'M'
mov [0eh], 'u'
mov [10h], 'n'
mov [12h], 'd'
mov [14h], 'o'
mov [16h], '!'
mov [18h], '!'
mov cx, 12 ; number of characters.
mov di, 03h ; start from byte after 'h'
c: mov [di], 11101100b ; light red(1100) on yellow(1110)
add di, 2 ; skip over next ascii code in vga memory.
loop c
mov ah, 0
int 16h
ret
EJEMPLO DATOS
CODIGO DEL EJEMPLO
name "Datos"
org 100h
mov ax, 3
int 10h
mov ax, 1003h
mov bx, 0
int 10h
mov ax, 0b800h
mov ds, ax
mov [02h], 'B '
mov [04h], 'y'
mov [06h], 'r'
mov [08h], 'o'
mov [0ah], 'n'
mov [0ch], 'C'
mov [0eh], 'h'
mov [10h], 'i'
mov [12h], 'c'
mov [14h], 'a'
mov [16h], 'i'
mov [18h], 'z'
mov [20h], 'a'
mov [22h], ','
mov [24h], 'p'
mov [26h], 'u'
mov [28h], 'c'
mov [30h], 'e'
mov [32h], 's'
mov [34h], 'I,'
mov [36h], '1'
mov [38h], ','
mov [40h], '0'
mov [42h], '4'
mov [44h], ','
mov [46h], '2'
mov [48h], '0'
mov [50h], '1'
mov [52h], '4'
mov cx, 41
mov di, 03h
c: mov [di], 11101100b
add di, 2
loop c
mov ah, 0
int 16h
ret
EJEMPLO COMPARACION DE UN NUMERO
CODIGO DEL EJEMPLO
name "Numero"
org 100h
mov ah, 4
mov al, 4
cmp ah, al
nop
mov ah, 4
mov al, 3
cmp ah, al
nop
mov ah, 1
mov al, -5
cmp ah, al
nop
mov ah, 1
mov al, 251
cmp ah, al
nop
mov ah, -3
mov al, -2
cmp ah, al
nop
mov ah, -2
mov al, -3
cmp ah, al
nop
mov ah, 255
mov al, 1
cmp ah, al
nop
game: mov dx, offset msg1
mov ah, 9
int 21h
mov ah, 1
int 21h
cmp al, '0'
jb stop
cmp al, '9'
ja stop
cmp al, '7'
jb below
ja above
mov dx, offset equal_7
jmp print
below: mov dx, offset below_7
jmp print
above: mov dx, offset above_7
print: mov ah, 9
int 21h
jmp game ; loop.
stop: ret ; stop
msg1 db "Introducir un numero $"
equal_7 db " Igual a 7", 0Dh,0Ah, "$"
below_7 db " Menor que 7" , 0Dh,0Ah, "$"
above_7 db " Mayor que 7" , 0Dh,0Ah, "$"
EJEMPLO SUMA DE 10 NUMEROS
Codigo del Ejemplo
name "Suma"
org 100h ; directive make tiny com file.
mov cx, 10
mov al, 0
mov bx, 0
next: add al, vector[bx]
inc bx
loop next
mov m, al
mov bl, m
mov cx, 8
print: mov ah, 2 ; print function.
mov dl, '0'
test bl, 10000000b ; test first bit.
jz zero
mov dl, '1'
zero: int 21h
shl bl, 1
loop print
mov dl, 'b'
int 21h
mov dl, 0ah ; new line.
int 21h
mov dl, 0dh ; carrige return.
int 21h
mov al, m
call print_al
mov ah, 0
int 16h
ret
vector db 5, 4, 5, 2, 1, 2, 5, 7, 9, 1
m db 0
print_al proc
cmp al, 0
jne print_al_r
push ax
mov al, '0'
mov ah, 0eh
int 10h
pop ax
ret
print_al_r:
pusha
mov ah, 0
cmp ax, 0
je pn_done
mov dl, 10
div dl
call print_al_r
mov al, ah
add al, 30h
mov ah, 0eh
int 10h
jmp pn_done
pn_done:
popa
ret
endp

Emuladores

  • 1.
    PONTIFICA UNIVERSIDAD CATOLICADEL ECUADOR SEDE IBARRA NOMBRE: BYRON CHICAIZA NIVEL: 5to “SISTEMAS” FECHA: 15/04/2041 INSTALACION DE EMU8086 Damos clic en siguiente
  • 2.
    Elegimos la rutapara instalar Presionamos en instalar Emu8086 El Emulador EMU8086 es el primer programa que se utiliza en el curso de Microprocesadores que imparte la Universidad Don Bosco; se ha elegido este emulador porque posee una interfaz de usuario muy amistosa que permite familiarizarse con los fundamentos de la programación en lenguaje ensamblador de forma muy intuitiva, aparte de eso brinda una serie de recursos para ejecutar y depurar los programas EJEMPLO DE HOLA MUNDO
  • 3.
    Código del Ejemplo name"Hola Mundo" org 100h mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3) int 10h ; do it! mov ax, 1003h mov bx, 0 int 10h mov ax, 0b800h mov ds, ax mov [02h], 'H' mov [04h], 'O' mov [06h], 'l' mov [08h], 'a' mov [0ah], ',' mov [0ch], 'M' mov [0eh], 'u' mov [10h], 'n' mov [12h], 'd' mov [14h], 'o' mov [16h], '!' mov [18h], '!' mov cx, 12 ; number of characters. mov di, 03h ; start from byte after 'h' c: mov [di], 11101100b ; light red(1100) on yellow(1110) add di, 2 ; skip over next ascii code in vga memory. loop c mov ah, 0 int 16h ret
  • 4.
    EJEMPLO DATOS CODIGO DELEJEMPLO name "Datos" org 100h mov ax, 3 int 10h mov ax, 1003h mov bx, 0 int 10h mov ax, 0b800h mov ds, ax mov [02h], 'B ' mov [04h], 'y' mov [06h], 'r' mov [08h], 'o' mov [0ah], 'n' mov [0ch], 'C' mov [0eh], 'h' mov [10h], 'i' mov [12h], 'c' mov [14h], 'a' mov [16h], 'i' mov [18h], 'z' mov [20h], 'a' mov [22h], ',' mov [24h], 'p' mov [26h], 'u' mov [28h], 'c'
  • 5.
    mov [30h], 'e' mov[32h], 's' mov [34h], 'I,' mov [36h], '1' mov [38h], ',' mov [40h], '0' mov [42h], '4' mov [44h], ',' mov [46h], '2' mov [48h], '0' mov [50h], '1' mov [52h], '4' mov cx, 41 mov di, 03h c: mov [di], 11101100b add di, 2 loop c mov ah, 0 int 16h ret EJEMPLO COMPARACION DE UN NUMERO CODIGO DEL EJEMPLO name "Numero" org 100h mov ah, 4 mov al, 4 cmp ah, al nop
  • 6.
    mov ah, 4 moval, 3 cmp ah, al nop mov ah, 1 mov al, -5 cmp ah, al nop mov ah, 1 mov al, 251 cmp ah, al nop mov ah, -3 mov al, -2 cmp ah, al nop mov ah, -2 mov al, -3 cmp ah, al nop mov ah, 255 mov al, 1 cmp ah, al nop game: mov dx, offset msg1 mov ah, 9 int 21h mov ah, 1 int 21h cmp al, '0' jb stop cmp al, '9' ja stop cmp al, '7' jb below ja above mov dx, offset equal_7 jmp print below: mov dx, offset below_7 jmp print above: mov dx, offset above_7 print: mov ah, 9 int 21h jmp game ; loop.
  • 7.
    stop: ret ;stop msg1 db "Introducir un numero $" equal_7 db " Igual a 7", 0Dh,0Ah, "$" below_7 db " Menor que 7" , 0Dh,0Ah, "$" above_7 db " Mayor que 7" , 0Dh,0Ah, "$" EJEMPLO SUMA DE 10 NUMEROS Codigo del Ejemplo name "Suma" org 100h ; directive make tiny com file. mov cx, 10 mov al, 0 mov bx, 0 next: add al, vector[bx] inc bx loop next mov m, al mov bl, m mov cx, 8 print: mov ah, 2 ; print function. mov dl, '0' test bl, 10000000b ; test first bit. jz zero mov dl, '1' zero: int 21h shl bl, 1 loop print
  • 8.
    mov dl, 'b' int21h mov dl, 0ah ; new line. int 21h mov dl, 0dh ; carrige return. int 21h mov al, m call print_al mov ah, 0 int 16h ret vector db 5, 4, 5, 2, 1, 2, 5, 7, 9, 1 m db 0 print_al proc cmp al, 0 jne print_al_r push ax mov al, '0' mov ah, 0eh int 10h pop ax ret print_al_r: pusha mov ah, 0 cmp ax, 0 je pn_done mov dl, 10 div dl call print_al_r mov al, ah add al, 30h mov ah, 0eh int 10h jmp pn_done pn_done: popa ret endp