Emulador emu 8086

cabrusil 484 views 17 slides May 03, 2016
Slide 1
Slide 1 of 17
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17

About This Presentation

Emulador


Slide Content

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:

• 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

Sección de code Examples programas ejemplo.

a)
b)

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?

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

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

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 ?

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

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

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

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:

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

; 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