SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
El emu8086
El emu8086 es un emulador del microprocesador 8086 (Intel o AMD compatible) con
assembler integrado. A diferencia del entorno de programación en assembler utilizado
anteriormente en la cátedra (MASM), este entorno corre sobre Windows y cuenta con
una interfaz gráfica muy amigable e intuitiva que facilita el aprendizaje el leguaje de
programación en assembler.
Dado que en un entorno emulado de microprocesador no es posible implementar una
interfaz real de entrada/salida, el emu8086 permite interfacear con dispositivos virtuales
y emular una comunicación con el espacio de E/S. Para esto, el emu8086 cuenta con una
serie de dispositivos virtuales preexistentes en el software base, listos para ser utilizados,
entre los que se encuentran una impresora, un cruce de calles con semáforos, un
termómetro, un motor paso a paso, etc. No obstante, la cátedra ha desarrollado
dispositivos adicionales con características particulares para la realización del segundo
trabajo practico.
Se muestra a continuación una tabla comparativa con las diferencias entre el entorno de
programación en assembler utilizado anteriormente en la cátedra (MASM 6.11) y el nuevo
emu8086:
Emu 8086 Microsoft Assembler (MASM 6.11)
Entorno educativo Entorno para producción y educativo.
Basado en Windows Basado en DOS
En forma nativa admite dispositivos
virtuales.
No admite dispositivos virtuales en forma nativa
Set de instrucciones de 8086 Set de instrucciones del 8086, 80186/286/386/486
Directivas propias adicionales
Directivas comunes con TASAM (Borland Turbo
Assembler)
Emula interrupciones por Hw y Sw No permite emular interrupciones
Emula el espacio de E/S (instrucciones
IN y OUT)
No permite emular el espacio de E/S
Permite emular interrupciones. No permite emular intrrupciones.
Herramientas adicionales para el debug
Proceso de instalación.
Paso 1:
Paso 2:
Paso 3:
Paso 4:
Paso 5:
Paso 6:
Paso 7:
Paso 8:
Paso 9:
Paso 10:
Ejercicios:
1) Ejecutar el programa hola mundo, y debe cambiar los mensajes de pantalla al español.
Código:
name "hi-world"
; this example prints out "hello world!"
; by writing directly to video memory.
; in vga memory: first byte is ascii character, byte that follows is character attribute.
; if you change the second byte, you can change the color of
; the character even after it is printed.
; character attribute is 8 bit value,
; high 4 bits set background color and low 4 bits set foreground color.
; hex bin color
; 0 0000 black
; 1 0001 blue
; 2 0010 green
; 3 0011 cyan
; 4 0100 red
; 5 0101 magenta
; 6 0110 brown
; 7 0111 light gray
; 8 1000 dark gray
; 9 1001 light blue
; a 1010 light green
; b 1011 light cyan
; c 1100 light red
; d 1101 light magenta
; e 1110 yellow
; f 1111 white
org 100h
; set video mode
mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3)
int 10h ; do it!
; cancel blinking and enable all 16 colors:
mov ax, 1003h
mov bx, 0
int 10h
; set segment register:
mov ax, 0b800h
mov ds, ax
; print "hello world"
; first byte is ascii code, second byte is color code.
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'
; color all characters:
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
; wait for any key press:
mov ah, 0
int 16h
ret
2) Compilar un programa en EMU8086 que indique lo siguiente: Nombre completo del
estudiante, Universidad, Fecha y materia.
Código:
.MODEL SMALL ;modelo pequeno de compilacion (64k como maximo)
.STACK 100h ;Segmento de pila: Pila 256 posiciones
CR EQU 13 ;Declaracion de constantes
LF EQU 10
.DATA ;Comienzo del segmento de datos
TEXTO DB 'Ruben Andres Pilca Ortiz PUCE-SI 26/04/2016
Compiladores$',CR,LF ;Reserva de memoria con retorno de carro e
;Inicio de linea, la variable TEXTO es de tipo
;byte,el simbolo $ es el simbolo de fin de cadena
.CODE ;Comienzo del segmento de código
MOV AX, SEG TEXTO ;Mueve a AX la direccion del primer byte del
;segmento de datos
MOV DS,AX ;Mueve dicha direccion al segmento de datos
LEA DX,TEXTO ;Cargamos en DX la dirección efectiva del texto
;que vamos a imprimir por pantalla
MOV AH,9 ;funcion "Escribir texto por pantalla"
INT 21h ;Llamada a DOS por medio de la interrupción
;para ejecutar la funcion
MOV AH,4ch ;funcion "Retornar a DOS"
INT 21h ;Interrupcion que llama a DOS para terminar el
;programa
END ;fin
3) Compilar un programa que permita comparar 2 números del 0 al 9.
Código:
org 100h
mov ah, 4
mov al, 4
cmp ah, al
nop
; (signed/unsigned)
; 4 is above and greater then 3
mov ah, 4
mov al, 3
cmp ah, al
nop
; -5 = 251 = 0fbh
; (signed)
; 1 is greater then -5
mov ah, 1
mov al, -5
cmp ah, al
nop
; (unsigned)
; 1 is below 251
mov ah, 1
mov al, 251
cmp ah, al
nop
; (signed)
; -3 is less then -2
mov ah, -3
mov al, -2
cmp ah, al
nop
; (signed)
; -2 is greater then -3
mov ah, -2
mov al, -3
cmp ah, al
nop
; (unsigned)
; 255 is above 1
mov ah, 255
mov al, 1
cmp ah, al
nop
; now a little game:
game: mov dx, offset msg1
mov ah, 9
int 21h
; read character in al:
mov ah, 1
int 21h
cmp al, '0'
jb stop
cmp al, '9'
ja stop
cmp al, '6'
jb below
ja above
mov dx, offset equal_5
jmp print
below: mov dx, offset below_5
jmp print
above: mov dx, offset above_5
print: mov ah, 9
int 21h
jmp game ; loop.
stop: ret ; stop
msg1 db "ingrese un numero u otro caracter para salir: $"
equal_5 db " es seis! (igual)", 0Dh,0Ah, "$"
below_5 db " es menor que seis!" , 0Dh,0Ah, "$"
above_5 db " is mayor que seis!" , 0Dh,0Ah, "$"
4) Compilar un programa que permita sumar 10 valores asignados a un vector.
org 100h
; 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 1, 2, 3, 4, 5, 6, 7, 8, 9, 6
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
5) Compilar un programa sugerido por usted, como propuesta adicional.
Escribir un programa que dibuje una diagonal en la pantalla.
Código:
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
cmp cx, 101 ;llegar hasta 100 x 100 (va en diagonal)
jz fin
inc cx ;DX = row.
add color, 2 ;para cambiar colores
jmp bucle1 ;CX = column
fin:
ret
color db 1

Más contenido relacionado

La actualidad más candente

programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84guestf09168b
 
Modos de direccionamiento.
Modos de direccionamiento.Modos de direccionamiento.
Modos de direccionamiento.deaisai
 
Conversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversaConversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversaDiego Seminario
 
Procesamiento digital de señales con matlab
Procesamiento digital de señales con matlabProcesamiento digital de señales con matlab
Procesamiento digital de señales con matlabPercy Julio Chambi Pacco
 
Debug PaulinaChacon
Debug PaulinaChaconDebug PaulinaChacon
Debug PaulinaChaconPau22
 
Ejercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresEjercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresBertha Vega
 
Articulo ieee proyecto de grado
Articulo ieee proyecto de gradoArticulo ieee proyecto de grado
Articulo ieee proyecto de gradoJoc Dueñas
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesLuis Zurita
 
1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladores1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladoresJoOsee Kette
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPUEduardo Suarez
 
Informe laboratorio n°1
Informe laboratorio n°1Informe laboratorio n°1
Informe laboratorio n°1luisescobedo38
 

La actualidad más candente (20)

programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
 
Modos de direccionamiento.
Modos de direccionamiento.Modos de direccionamiento.
Modos de direccionamiento.
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
El barbero-dormilón
El barbero-dormilónEl barbero-dormilón
El barbero-dormilón
 
Conversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversaConversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversa
 
1 modulación psk
1 modulación psk1 modulación psk
1 modulación psk
 
Automatas finitos
Automatas finitosAutomatas finitos
Automatas finitos
 
Procesamiento digital de señales con matlab
Procesamiento digital de señales con matlabProcesamiento digital de señales con matlab
Procesamiento digital de señales con matlab
 
Electrónica digital: Comparadores
Electrónica digital: ComparadoresElectrónica digital: Comparadores
Electrónica digital: Comparadores
 
Debug PaulinaChacon
Debug PaulinaChaconDebug PaulinaChacon
Debug PaulinaChacon
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Codificación de Huffman
Codificación de HuffmanCodificación de Huffman
Codificación de Huffman
 
Ejercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresEjercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadores
 
Articulo ieee proyecto de grado
Articulo ieee proyecto de gradoArticulo ieee proyecto de grado
Articulo ieee proyecto de grado
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladores1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladores
 
Diagrama de bode
Diagrama de bodeDiagrama de bode
Diagrama de bode
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
Familias lógicas
Familias lógicasFamilias lógicas
Familias lógicas
 
Informe laboratorio n°1
Informe laboratorio n°1Informe laboratorio n°1
Informe laboratorio n°1
 

Similar a Emulador de ensamblador EMU8086.

Similar a Emulador de ensamblador EMU8086. (20)

Emu 8086
Emu 8086Emu 8086
Emu 8086
 
INSTALACIÓN DE EMU8086
INSTALACIÓN DE EMU8086INSTALACIÓN DE EMU8086
INSTALACIÓN DE EMU8086
 
EMU8086
EMU8086EMU8086
EMU8086
 
Emu 8086
Emu 8086Emu 8086
Emu 8086
 
Programa Emu8086
Programa Emu8086Programa Emu8086
Programa Emu8086
 
Instalacion emu8086
Instalacion emu8086Instalacion emu8086
Instalacion emu8086
 
Emulador de ensamblador EMU8086
 Emulador de ensamblador EMU8086 Emulador de ensamblador EMU8086
Emulador de ensamblador EMU8086
 
Emulador emu8086
Emulador emu8086Emulador emu8086
Emulador emu8086
 
Emu8086
Emu8086Emu8086
Emu8086
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Emulador de ensamblador emu8086
Emulador de ensamblador emu8086Emulador de ensamblador emu8086
Emulador de ensamblador emu8086
 
Emulador emu 8086
Emulador emu 8086Emulador emu 8086
Emulador emu 8086
 
Emulador emu 8086
Emulador emu 8086Emulador emu 8086
Emulador emu 8086
 
Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...
Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...
Microcontroladores AVR y Arduino: Programación del microatmega328p en ensambl...
 
Lenguaje máquina
Lenguaje máquinaLenguaje máquina
Lenguaje máquina
 
5.quinto ejercicio emu8086
5.quinto ejercicio emu80865.quinto ejercicio emu8086
5.quinto ejercicio emu8086
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
Registros de la cpu
Registros de la cpuRegistros de la cpu
Registros de la cpu
 
Programas asm
Programas asmProgramas asm
Programas asm
 
Guia de laboratorio a
Guia de laboratorio aGuia de laboratorio a
Guia de laboratorio a
 

Más de RubnPilca

TALLER DE COMPILADORES (Flex y Bison).
TALLER DE COMPILADORES  (Flex y Bison). TALLER DE COMPILADORES  (Flex y Bison).
TALLER DE COMPILADORES (Flex y Bison). RubnPilca
 
Análisis sintáctico
Análisis sintácticoAnálisis sintáctico
Análisis sintácticoRubnPilca
 
Compilando un programa manualmente Java, C++, Visual Basic
Compilando un programa manualmente Java, C++, Visual BasicCompilando un programa manualmente Java, C++, Visual Basic
Compilando un programa manualmente Java, C++, Visual BasicRubnPilca
 
Fortran con el compilador Gfortran.
Fortran con el compilador Gfortran. Fortran con el compilador Gfortran.
Fortran con el compilador Gfortran. RubnPilca
 
Instalar compiladores cruzados
Instalar compiladores cruzadosInstalar compiladores cruzados
Instalar compiladores cruzadosRubnPilca
 
Emsambladores
EmsambladoresEmsambladores
EmsambladoresRubnPilca
 
PROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORESPROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORESRubnPilca
 
Investigación Ensambladores y Decompiladores
Investigación Ensambladores y DecompiladoresInvestigación Ensambladores y Decompiladores
Investigación Ensambladores y DecompiladoresRubnPilca
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionRubnPilca
 

Más de RubnPilca (9)

TALLER DE COMPILADORES (Flex y Bison).
TALLER DE COMPILADORES  (Flex y Bison). TALLER DE COMPILADORES  (Flex y Bison).
TALLER DE COMPILADORES (Flex y Bison).
 
Análisis sintáctico
Análisis sintácticoAnálisis sintáctico
Análisis sintáctico
 
Compilando un programa manualmente Java, C++, Visual Basic
Compilando un programa manualmente Java, C++, Visual BasicCompilando un programa manualmente Java, C++, Visual Basic
Compilando un programa manualmente Java, C++, Visual Basic
 
Fortran con el compilador Gfortran.
Fortran con el compilador Gfortran. Fortran con el compilador Gfortran.
Fortran con el compilador Gfortran.
 
Instalar compiladores cruzados
Instalar compiladores cruzadosInstalar compiladores cruzados
Instalar compiladores cruzados
 
Emsambladores
EmsambladoresEmsambladores
Emsambladores
 
PROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORESPROGRAMAS DECOMPILADORES
PROGRAMAS DECOMPILADORES
 
Investigación Ensambladores y Decompiladores
Investigación Ensambladores y DecompiladoresInvestigación Ensambladores y Decompiladores
Investigación Ensambladores y Decompiladores
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 

Último

SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 

Último (19)

SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 

Emulador de ensamblador EMU8086.

  • 1. El emu8086 El emu8086 es un emulador del microprocesador 8086 (Intel o AMD compatible) con assembler integrado. A diferencia del entorno de programación en assembler utilizado anteriormente en la cátedra (MASM), este entorno corre sobre Windows y cuenta con una interfaz gráfica muy amigable e intuitiva que facilita el aprendizaje el leguaje de programación en assembler. Dado que en un entorno emulado de microprocesador no es posible implementar una interfaz real de entrada/salida, el emu8086 permite interfacear con dispositivos virtuales y emular una comunicación con el espacio de E/S. Para esto, el emu8086 cuenta con una serie de dispositivos virtuales preexistentes en el software base, listos para ser utilizados, entre los que se encuentran una impresora, un cruce de calles con semáforos, un termómetro, un motor paso a paso, etc. No obstante, la cátedra ha desarrollado dispositivos adicionales con características particulares para la realización del segundo trabajo practico.
  • 2. Se muestra a continuación una tabla comparativa con las diferencias entre el entorno de programación en assembler utilizado anteriormente en la cátedra (MASM 6.11) y el nuevo emu8086: Emu 8086 Microsoft Assembler (MASM 6.11) Entorno educativo Entorno para producción y educativo. Basado en Windows Basado en DOS En forma nativa admite dispositivos virtuales. No admite dispositivos virtuales en forma nativa Set de instrucciones de 8086 Set de instrucciones del 8086, 80186/286/386/486 Directivas propias adicionales Directivas comunes con TASAM (Borland Turbo Assembler) Emula interrupciones por Hw y Sw No permite emular interrupciones Emula el espacio de E/S (instrucciones IN y OUT) No permite emular el espacio de E/S Permite emular interrupciones. No permite emular intrrupciones. Herramientas adicionales para el debug
  • 8. Ejercicios: 1) Ejecutar el programa hola mundo, y debe cambiar los mensajes de pantalla al español. Código: name "hi-world" ; this example prints out "hello world!" ; by writing directly to video memory. ; in vga memory: first byte is ascii character, byte that follows is character attribute. ; if you change the second byte, you can change the color of ; the character even after it is printed. ; character attribute is 8 bit value, ; high 4 bits set background color and low 4 bits set foreground color. ; hex bin color
  • 9. ; 0 0000 black ; 1 0001 blue ; 2 0010 green ; 3 0011 cyan ; 4 0100 red ; 5 0101 magenta ; 6 0110 brown ; 7 0111 light gray ; 8 1000 dark gray ; 9 1001 light blue ; a 1010 light green ; b 1011 light cyan ; c 1100 light red ; d 1101 light magenta ; e 1110 yellow ; f 1111 white org 100h ; set video mode mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3) int 10h ; do it! ; cancel blinking and enable all 16 colors: mov ax, 1003h mov bx, 0 int 10h ; set segment register: mov ax, 0b800h mov ds, ax ; print "hello world"
  • 10. ; first byte is ascii code, second byte is color code. 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' ; color all characters: 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 ; wait for any key press: mov ah, 0 int 16h ret
  • 11. 2) Compilar un programa en EMU8086 que indique lo siguiente: Nombre completo del estudiante, Universidad, Fecha y materia. Código: .MODEL SMALL ;modelo pequeno de compilacion (64k como maximo) .STACK 100h ;Segmento de pila: Pila 256 posiciones CR EQU 13 ;Declaracion de constantes LF EQU 10 .DATA ;Comienzo del segmento de datos TEXTO DB 'Ruben Andres Pilca Ortiz PUCE-SI 26/04/2016
  • 12. Compiladores$',CR,LF ;Reserva de memoria con retorno de carro e ;Inicio de linea, la variable TEXTO es de tipo ;byte,el simbolo $ es el simbolo de fin de cadena .CODE ;Comienzo del segmento de código MOV AX, SEG TEXTO ;Mueve a AX la direccion del primer byte del ;segmento de datos MOV DS,AX ;Mueve dicha direccion al segmento de datos LEA DX,TEXTO ;Cargamos en DX la dirección efectiva del texto ;que vamos a imprimir por pantalla MOV AH,9 ;funcion "Escribir texto por pantalla" INT 21h ;Llamada a DOS por medio de la interrupción ;para ejecutar la funcion MOV AH,4ch ;funcion "Retornar a DOS" INT 21h ;Interrupcion que llama a DOS para terminar el ;programa END ;fin
  • 13. 3) Compilar un programa que permita comparar 2 números del 0 al 9. Código: org 100h mov ah, 4 mov al, 4 cmp ah, al nop ; (signed/unsigned) ; 4 is above and greater then 3 mov ah, 4 mov al, 3 cmp ah, al nop
  • 14. ; -5 = 251 = 0fbh ; (signed) ; 1 is greater then -5 mov ah, 1 mov al, -5 cmp ah, al nop ; (unsigned) ; 1 is below 251 mov ah, 1 mov al, 251 cmp ah, al nop ; (signed) ; -3 is less then -2 mov ah, -3 mov al, -2 cmp ah, al nop ; (signed) ; -2 is greater then -3 mov ah, -2 mov al, -3 cmp ah, al nop ; (unsigned) ; 255 is above 1 mov ah, 255
  • 15. mov al, 1 cmp ah, al nop ; now a little game: game: mov dx, offset msg1 mov ah, 9 int 21h ; read character in al: mov ah, 1 int 21h cmp al, '0' jb stop cmp al, '9' ja stop cmp al, '6' jb below ja above mov dx, offset equal_5 jmp print below: mov dx, offset below_5 jmp print above: mov dx, offset above_5 print: mov ah, 9 int 21h jmp game ; loop. stop: ret ; stop msg1 db "ingrese un numero u otro caracter para salir: $" equal_5 db " es seis! (igual)", 0Dh,0Ah, "$"
  • 16. below_5 db " es menor que seis!" , 0Dh,0Ah, "$" above_5 db " is mayor que seis!" , 0Dh,0Ah, "$" 4) Compilar un programa que permita sumar 10 valores asignados a un vector. org 100h ; 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]
  • 17. ; 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:
  • 18. mov ah, 0 int 16h ret ; variables: vector db 1, 2, 3, 4, 5, 6, 7, 8, 9, 6 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
  • 19. pn_done: popa ret endp 5) Compilar un programa sugerido por usted, como propuesta adicional. Escribir un programa que dibuje una diagonal en la pantalla. Código: mov cx,1 mov al, 13h mov ah, 0 int 10h ; set graphics video mode.
  • 20. bucle1: mov dx, cx mov al, color ;AL = pixel color mov ah, 0ch ;Change color for a single pixel int 10h ;set pixel cmp cx, 101 ;llegar hasta 100 x 100 (va en diagonal) jz fin inc cx ;DX = row. add color, 2 ;para cambiar colores jmp bucle1 ;CX = column fin: ret color db 1