17
Pontificia universidad católica del ecuador sede Ibarra Nombre: Carlos Brusil EMULADOR EMU-8086 (DOWNLOAD) El Emulador EMU8086 es el programa que se utiliza en el curso de Estructura de computadores II que imparte la carrera Ingeniería Informática de la FNI. 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(assembler) de forma muy intuitiva, aparte de eso brinda una serie de recursos para ejecutar y depurar los programas. También tiene algunas desventajas como el de no soportar algunas de las interrupciones más interesantes que posee el sistema operativo y tampoco puede acceder a los puertos físicos (reales), sino que los emula usando otros programas que ya están incluidos en su respectiva carpeta. Pautas Para iniciar se debe ejecutar el archivos EMU886.exe, que se encuentra en la carpeta del mismo nombre, en el directorio raíz; seguramente en la computadora donde corra el programa tendrá otras alternativas para activar el programa, como un acceso directo en el escritorio o en el menú de programas del sistema operativo.Si está ejecutando la versión 4.05 del EMU8086 observará primero la pantalla deBienvenida (welcome), similar a la que se muestra en la Figura 1 Figura 1. Pantalla de bienvenida del emulador EMU8086. Se presentan cuatro diferentes opciones para elegir:

Emulador emu 8086

Embed Size (px)

Citation preview

Page 1: Emulador emu 8086

Pontificia universidad católica del ecuador sede Ibarra

Nombre: Carlos Brusil

EMULADOR EMU-8086 (DOWNLOAD)

El Emulador EMU8086 es el programa que se utiliza en el curso de Estructura de

computadores II que imparte la carrera Ingeniería Informática de la FNI. 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(assembler) de forma muy intuitiva, aparte de eso brinda una serie de recursos

para ejecutar y depurar los programas. También tiene algunas desventajas como el de no

soportar algunas de las interrupciones más interesantes que posee el sistema operativo y

tampoco puede acceder a los puertos físicos (reales), sino que los emula usando otros

programas que ya están incluidos en su respectiva carpeta.

Pautas

Para iniciar se debe ejecutar el archivos EMU886.exe, que se encuentra en la carpeta del

mismo nombre, en el directorio raíz; seguramente en la computadora donde corra el

programa tendrá otras alternativas para activar el programa, como un acceso directo en el

escritorio o en el menú de programas del sistema operativo.Si está ejecutando la versión

4.05 del EMU8086 observará primero la pantalla deBienvenida (welcome), similar a la que

se muestra en la Figura 1

Figura 1. Pantalla de bienvenida del emulador EMU8086.

Se presentan cuatro diferentes opciones para elegir:

Page 2: Emulador emu 8086

• New: Le permite escribir un nuevo código en lenguaje ensamblador (al queLlamaremos

“Código Fuente” y tendrá extensión .ASM)

• Code examples: Le permite acceder a una serie de programas ejemplos quepueden

ayudarle a comprender funciones más complejas.

• Quick star tutor : activa un conjunto de documentos de ayuda, se recomiendarevisarlos

frecuentemente en caso de dudas.

• Recent file: Le muestra los últimos archivos que se trabajaron en la máquina.Para

continuar este primer contacto con el emulador seleccione New. Observará una nueva caja

de dialogo “choose code template”,como se muestra en la Figura2

Figura 2. Caja de dialogo para seleccionar el tipo plantilla (template).

En ella se le presentan seis opciones, cuatro que le permiten usar plantillas predefinidas con

algunos de los tipo de archivo que se pueden crear en lenguaje ensamblador: COM

template, EXE template, BIN template y BOOT template (cada uno le permite diferentes

características que se abordaran a su debido tiempo en el curso). Dos que le permiten usar

un espacio vacío “empty workspace” (sin una plantilla) o activar el emulador mismo.

Selecciones la opción del espacio vacío. Observará la ventana de edición o mejor dicho el

Entorno de Desarrollo Integrado (Integrated Development Environme IDE), como se

muestra en la Figura 3, donde escribirá sus archivos fuentes en lenguaje ensamblador, por

favor lo confunda con el lenguaje de máquina.Podrá ver una barra de menú de Windows

con sus opciones file, edit, etc. pero también vera unas opciones poco usuales como

assembler, emulator, etc. propias del emulador. También vera una serie de botones que le

permitirán crear un nuevo archivo (new), abrir un ejemplo (examples), compilar un archivo

fuente (compile), emular un archivo ejecutable (emulate) y otras opciones que ira

descubriendo a medida que se familiarice con el programa.

Ahora procedemos con la instalacion

Page 3: Emulador emu 8086
Page 4: Emulador emu 8086
Page 5: Emulador emu 8086
Page 6: Emulador emu 8086

Sección de code Examples programas ejemplo.

Page 7: Emulador emu 8086

a)

b)

Page 8: Emulador emu 8086

c)

1.- Código hola mundo en ensamblador

; You may customize this and other start-up templates;

; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h

; add your code here

.model small

.stack

.data

saludo db "Hola mundo!!!", "$"

.code

main proc ;Inicia proceso

mov ax,seg saludo ;hmm ¿seg?

Page 9: Emulador emu 8086

mov ds,ax ;ds = ax = saludo

mov ah,09 ;Function(print string)

lea dx,saludo ;DX = String terminated by "$"

int 21h ;Interruptions DOS Functions

;mensaje en pantalla

mov ax,4c00h ;Function (Quit with exit code (EXIT))

int 21h ;Interruption DOS Functions

main endp ;Termina proceso

end main

ret

Aquí tenemos una captura de pantalla

Page 10: Emulador emu 8086

2.- Compilar un programa en EMU8086 que indique lo siguiente: Nombre completo del

estudiante, Universidad, Fecha y materia.

Código:

; You may customize this and other start-up templates;

; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h

; add your code here

.model small

.stack

.data

saludo db "Calos Andres Brusil Andrango, Pontificia Universidad Catolica de Ecuador

Sede Ibarra, 03/05/2016, Compiladores!!!", "$"

.code

main proc ;Inicia proceso

Page 11: Emulador emu 8086

mov ax,seg saludo ;hmm ¿seg?

mov ds,ax ;ds = ax = saludo

mov ah,09 ;Function(print string)

lea dx,saludo ;DX = String terminated by "$"

int 21h ;Interruptions DOS Functions

;mensaje en pantalla

mov ax,4c00h ;Function (Quit with exit code (EXIT))

int 21h ;Interruption DOS Functions

main endp ;Termina proceso

end main

ret

3.- Programa que permita comparar dos números del 0 al 9 en ensamblador

; You may customize this and other start-up templates;

; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h

; add your code here

.model small

.stack

.data

var1 db ?

Page 12: Emulador emu 8086

var2 db ?

msg1 db ' El primero es mayor: $'

msg2 db ' El primero es menor: $'

msg3 db ' Son iguales++$'

msg4 db ' Primer valor: $'

msg5 db ' Segundo valor: $'

.code

.startup

mov ah,00h

mov al,03h

int 10h

mov ah,02h

mov dx,0510h

mov bh,0

int 10h

mov ah,09h

lea dx,msg4

int 21h

mov ah,07h

int 21h

mov ah, 02h

Page 13: Emulador emu 8086

mov dl,al

int 21h

mov var1,al

mov ah,09h

lea dx,msg5

int 21h

mov ah,07h

int 21h

mov ah,02h

mov dl,al

int 21h

mov var2,al

cmp var1,al

ja mayor

jb menor

je igual

mayor:

mov ah,09h

lea dx,msg1

int 21h

jmp salir

Page 14: Emulador emu 8086

menor:

mov ah,09h

lea dx,msg2

int 21h

jmp salir

igual:

mov ah,09h

lea dx,msg3

int 21h

jmp salir

salir:

.exit

end

ret

Aquí tenemos una pequeña captura de pantalla

Page 15: Emulador emu 8086

4.- Programa en emulador que me permita sumar 10 números

; You may customize this and other start-up templates;

; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h

; add your code here

name "calc-sum"

org 100h

; directive make tiny com file.

; calculate the sum of elements in vector,

; store result in m and print it in binary code.

; number of elements:

mov cx, 10

; al will store the sum:

mov al, 0

; bx is an index:

Page 16: Emulador emu 8086

mov bx, 0

; sum elements:

next: add al, vector[bx]

; next byte:

inc bx

; loop until cx=0:

loop next

; store result in m:

mov m, al

; print result in binary:

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

; print binary suffix:

mov dl, 'b'

int 21h

mov dl, 0ah ; new line.

int 21h

mov dl, 0dh ; carrige return.

int 21h

; print result in decimal:

mov al, m

call print_al

Page 17: Emulador emu 8086

; wait for any key press:

mov ah, 0

int 16h

ret

; variables:

vector db 5, 4, 5, 2, 1, 9, 1, 2, 5, 7

ret