PRACTICA 03 Oto2014 Informatica

9
MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 12:30pm a 2:45pm LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086 Correo Electrónico: [email protected] Pagina 1 / 9 ENSAMBLADOR 8086 TASM/MASM/emu8086 PROGRAMACIÓN PRÁCTICAS DE LABORATORIO

description

Estas prácticas se han elaborado para orientar a los alumnos de la materia de INFORMÁTICA BÁSICA en el aprendizaje de algoritmos computacionales dentro del Lenguaje Ensamblador y el entorno TASM / MASM o en el entorno del EMU806

Transcript of PRACTICA 03 Oto2014 Informatica

Page 1: PRACTICA 03 Oto2014 Informatica

MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 12:30pm a 2:45pm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086 Correo Electrónico: [email protected] Pagina 1 / 9

ENSAMBLADOR 8086 TASM/MASM/emu8086

PROGRAMACIÓN PRÁCTICAS DE LABORATORIO

Page 2: PRACTICA 03 Oto2014 Informatica

MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 12:30pm a 2:45pm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086 Correo Electrónico: [email protected] Pagina 2 / 9

Introducción

Estas prácticas se han elaborado para orientar a los alumnos de la materia de INFORMÁTICA BÁSICA en

el aprendizaje de algoritmos computacionales dentro del Lenguaje Ensamblador y el entorno TASM /

MASM o en el entorno del EMU806

Todas las prácticas de laboratorio estarán estructuradas de la siguiente forma:

Objetivo.

Recursos.

Teoría.

Desarrollo de ejercicios y entrega de resultados

NOTAS:

EL RESULTADO DE CADA PROGRAMA DE ESTA PRÁCTICA, SE ENVIARÁ AL CORREO: PROF. ING. JORGE

RAMOS GARCIA, [email protected] (pantalla de resultados y los archivos fuente .ASM)

REVISE Y ESTUDIE CADA EJERCICIO Y TRATE DE ENTENDERLOS PARA LOS EJERCICIOS QUE SE

REALIZARAN EN LAS SIGUIENTES PRACTICAS.

CUALQUIER DUDA O COMENTARIO FAVOR DE EXPRESARLO

Page 3: PRACTICA 03 Oto2014 Informatica

MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 12:30pm a 2:45pm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086 Correo Electrónico: [email protected] Pagina 3 / 9

P R Á C T I C A NO. 2 ARITMETICA PARA BCD Y ASCII

OBJETIVO:

Realizar ajustes en operaciones básicas para formatos en BCD y ASCII en Ensamblador 8086

RECURSOS:

Para implementar los ejercicios de programación en lenguaje ensamblador se utilizarán las siguientes herramientas de

software:

Editor: Block de notas, EDIT / NE / ó cualquier otro que genere archivos ASCII.

Software IDE: emu8086.exe

TEORIA.

AAA

Aritmética

ASCII Adjust for Addition

(Ajuste ASCII para suma): AAA cambia el contenido de AL a un número decimal no empacado valido con el nibble de alto orden

en ceros.

Banderas afectadas

AF, CF, OF(no definida), SF(no definida), ZF(no definida), PF(no definida).

AAD

Aritmética

ASCII Adjust for División

(Ajuste ASCII para división): AAD multiplica el contenido de AH por 10, añade el resultado al contenido del AL y ubica dicho

resultado en AL.

Luego, la instrucción pone AH en 0. Esta instrucción se usa antes de dividir números decimales no empacados.

Page 4: PRACTICA 03 Oto2014 Informatica

MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 12:30pm a 2:45pm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086 Correo Electrónico: [email protected] Pagina 4 / 9

Banderas afectadas:

SF, ZF, PF, OF(no definida), AF(no definida), CF(no definida).

AAM

Aritmética

ASCII Adjust for Multiplication

(Ajuste ASCII para multiplicación): Después de multiplicar dos números decimales no empacados, se utiliza AAM a fin de

corregir el resultado para un número decimal no empacado. Para que la instrucción trabaje adecuadamente, los nibbles de alto

orden de cada número multiplicado deben ponerse en 0.

Banderas afectadas

SF, ZF, PF, OF(no definida),

AF (no definida),

CF (no definida).

AAS

Aritmética

ASCII Adjust for Subtraction

(Ajuste ASCII para resta): AAS corrige el resultado de una resta decimal no empacada anterior, de tal forma que el valor en AL es

un verdadero número decimal no empacado.

Banderas afectadas

AF, CF, OF(no definida), SF(no definida), ZF(no definida), PF(no definida).

Page 5: PRACTICA 03 Oto2014 Informatica

MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 12:30pm a 2:45pm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086 Correo Electrónico: [email protected] Pagina 5 / 9

DESARROLLO DE EJERCICIOS.

1) Abra el emu8086.

2) Revise la sintaxis de las instrucciones AAA, AAS y DAA en el simulador pulsando la tecla F1 y dando clic en el título “8086

Instruction set”.

3) Minimice la ventana y regrese al emulador, en la barra de menú seleccione “ascii codes” e identifique en la tabla de caracteres

ASCII los números en ASCII hexadecimal que les corresponde a los números del 0 al 9 y anótelos a continuación (al dar clic

en cualquier parte de la ventana puede intercambiar entre ver los datos ASCII en su correspondiente decimal o hexadecimal): ____________________________________________________________________________________

____________________________________________________________________________________

4) Digite el PROGRAMA 1 en el simulador: este es un ejemplo de uso de AAA

PROGRAMA 1

.model small

.stack

.data

operando1 db 39h ; 39h codigo ascii del 9 decimal

operando2 db 39h

resultadoascii db 2 dup (?) ;reserva dos byte para el resultado

.code

Inicio:

mov ax, @DATA ;indica donde estan los datos que se van a operar

mov ds, ax

mov ax,0

mov al,operando1

add al,operando2

aaa ;ajuste ascii despues de sumar 2 bytes ascii

add ax,3030h

mov resultadoascii, ah

mov resultadoascii+1,al

;----------------------------

mov dl,resultadoascii

mov ah,02h

int 21h

mov dl,resultadoascii+1

mov ah,02h

int 21h

;----------------------------

Page 6: PRACTICA 03 Oto2014 Informatica

MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 12:30pm a 2:45pm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086 Correo Electrónico: [email protected] Pagina 6 / 9

mov ax,4c00h

int 21h

end inicio 5) Dé clic sobre EMULATE y abra la ventana de variables (en el botón “vars”), debería visualizar 3 elementos: “operando1”,

“operando2” y “resultadoascii”, seleccione en las opciones de “Show as” de cada variable, la visualización “ASCII”, en la

variable “resultadoascii” también cambie “elements” a 2.

6) Corra el programa paso a paso hasta antes de ejecutar la operación AAA, observe el estado del acumulador y de las banderas,

especialmente AF ____________________

7) Ejecute la instrucción de ajuste y observe el estado del acumulador (AX) y las banderas en este momento especialmente CF y

AF ____________________

8) Ejecute todo el programa

9) Observe el contenido de la variable “resultadoascii”

10) Modifique el programa anterior poniendo como operandos los números 34h y 32h

11) Repita el procedimiento de los pasos 5 al 9 y describa las diferencias en los estados del acumulador y las banderas AF y CF

12) Copie el PROGRAMA 2 que es una aplicación del ajuste AAS

PROGRAMA 2

.model small

.stack

.data

operando1 db 36h ; 36h codigo ascii del 6 decimal

operando2 db 32h

resultadoascii db 2 dup (?) ;reserva dos byte para el resultado

.code

inicio:

mov ax, @DATA ;indica donde estan los datos que se van a operar

mov ds, ax

mov ax,0

mov al,operando1

sub al,operando2

aas

Page 7: PRACTICA 03 Oto2014 Informatica

MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 12:30pm a 2:45pm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086 Correo Electrónico: [email protected] Pagina 7 / 9

add ax,3030h

mov resultadoascii, ah

mov resultadoascii +1, al

;----------------------------

mov dl,resultadoascii

mov ah,02h

int 21h

mov dl,resultadoascii+1

mov ah,02h

int 21h

;----------------------------

mov ax,4c00h

int 21h

end inicio

13) Repita el paso 5.

14) Corra el programa paso a paso hasta antes de ejecutar la operación AAS, observe el estado del acumulador y de las banderas,

especialmente AF y CF _________________________________

15) Ejecute la instrucción de ajuste y observe el estado del acumulador y las banderas en este momento especialmente CF y AF

____________________

16) Ejecute todo el programa

17) Observe el contenido de la variable “resultadoascii”

18) Cambie los operandos de modo que el operando2 sea mayor que operando1 y ejecute el programa ¿por qué se da este

resultado?

Análisis de Resultados

PROGRAMA 1

1- ¿Para qué se realiza la instrucción ADD AX, 3030h?

Page 8: PRACTICA 03 Oto2014 Informatica

MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 12:30pm a 2:45pm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086 Correo Electrónico: [email protected] Pagina 8 / 9

2- ¿En qué formato de decimal (empaquetado o no empaquetado) se da el resultado, después del ajuste, en AAA?

PROGRAMA 2

1- ¿En qué formato de decimal (empaquetado o no empaquetado) se da el resultado, después del ajuste, en AX? 2- ¿Cómo puede arreglarse el hecho de tener un resultado negativo en el programa y que no me afecte la presentación del resultado

en pantalla?

Presente las respuestas a las preguntas que se le realizaron en el procedimiento.

Investigación Complementaria

• Investigue Sobre las otras instrucciones de ajuste que tiene el microprocesador 8086: DAS, AAD y AAM

Bibliografía

· Ayuda del EMU8086 (Instrucciones del 8086).

· Alfredo Rojas Ponce. Ensamblador Básico. Editorial Computec. Primera edición. 1993. Cap. 6 , pags. 177 – 191 Clasificación

UDB: 001.6404 R471 1993.

· Barry B. Brey. Los microprocesadores Intel, Arquitectura, programación e interfaces. Editorial Prentice Hall, Tercera Edición.

Clasificación UDB: 001.6404 B847 1997.

Page 9: PRACTICA 03 Oto2014 Informatica

MATERIA: INFORMATICA BÀSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programación. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS – DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 TRIM: Otoño 2014 HORARIO: MARTES y JUEVES de 12:30pm a 2:45pm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086 Correo Electrónico: [email protected] Pagina 9 / 9