Вы находитесь на странице: 1из 9

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.

: COMUNICACIONES Y ELECTRNICA SALON: 309 TRIM: Invierno 2013

PROFESOR: M. en ING. JORGE RAMOS GARCIA. GPO: B Email: josh_ram@hotmail.com DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm a 11:50pm

ENSAMBLADOR 8086
TASM/MASM/emu8086

PROGRAMACIN
PRCTICAS DE LABORATORIO

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086

Correo Electrnico: josh_ram@hotmail.com

Pagina 1 / 9

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 TRIM: Invierno 2013

PROFESOR: M. en ING. JORGE RAMOS GARCIA. GPO: B Email: josh_ram@hotmail.com DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm a 11:50pm

Introduccin

Estas prcticas se han elaborado para orientar a los alumnos de la materia de INFORMTICA BSICA en el aprendizaje de algoritmos computacionales dentro del Lenguaje Ensamblador y el entorno TASM / MASM o en el entorno del EMU806

Todas las prcticas de laboratorio estarn estructuradas de la siguiente forma:

Objetivo. Recursos. Teora. Desarrollo de ejercicios y entrega de resultados

NOTAS: EL RESULTADO DE CADA PROGRAMA DE ESTA PRCTICA, SE ENVIAR AL CORREO: PROF. ING. JORGE RAMOS GARCIA, josh_ram@hotmail.com (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

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086

Correo Electrnico: josh_ram@hotmail.com

Pagina 2 / 9

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 TRIM: Invierno 2013

PROFESOR: M. en ING. JORGE RAMOS GARCIA. GPO: B Email: josh_ram@hotmail.com DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm a 11:50pm

PRCTICA

NO. 2

ARITMETICA PARA BCD Y ASCII

OBJETIVO: Realizar ajustes en operaciones bsicas para formatos en BCD y ASCII en Ensamblador 8086

RECURSOS:

Para implementar los ejercicios de programacin en lenguaje ensamblador se utilizarn las siguientes herramientas de software: Editor: Block de notas, EDIT / NE / cualquier otro que genere archivos ASCII. Ensamblador: TASM.EXE Enlazador: TLINK.EXE
Software IDE: emu8086.exe

TEORIA.

AAA Aritmtica ASCII Adjust for Addition (Ajuste ASCII para suma): AAA cambia el contenido de AL a un nmero 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 Aritmtica ASCII Adjust for Divisin (Ajuste ASCII para divisin): AAD multiplica el contenido de AH por 10, aade el resultado al contenido del AL y ubica dicho resultado en AL. Luego, la instruccin pone AH en 0. Esta instruccin se usa antes de dividir nmeros decimales no empacados. Banderas afectadas:
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086

Correo Electrnico: josh_ram@hotmail.com

Pagina 3 / 9

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 TRIM: Invierno 2013

PROFESOR: M. en ING. JORGE RAMOS GARCIA. GPO: B Email: josh_ram@hotmail.com DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm a 11:50pm

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

AAM Aritmtica ASCII Adjust for Multiplication (Ajuste ASCII para multiplicacin): Despus de multiplicar dos nmeros decimales no empacados, se utiliza AAM a fin de corregir el resultado para un nmero decimal no empacado. Para que la instruccin trabaje adecuadamente, los nibbles de alto orden de cada nmero multiplicado deben ponerse en 0. Banderas afectadas SF, ZF, PF, OF(no definida), AF (no definida), CF (no definida).

AAS Aritmtica 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 nmero decimal no empacado. Banderas afectadas AF, CF, OF(no definida), SF(no definida), ZF(no definida), PF(no definida).

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086

Correo Electrnico: josh_ram@hotmail.com

Pagina 4 / 9

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 TRIM: Invierno 2013

PROFESOR: M. en ING. JORGE RAMOS GARCIA. GPO: B Email: josh_ram@hotmail.com DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm a 11:50pm

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 ttulo 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 nmeros en ASCII hexadecimal que les corresponde a los nmeros del 0 al 9 y antelos a continuacin ( 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 ;---------------------------mov ax,4c00h int 21h end inicio
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086

Correo Electrnico: josh_ram@hotmail.com

Pagina 5 / 9

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 TRIM: Invierno 2013

PROFESOR: M. en ING. JORGE RAMOS GARCIA. GPO: B Email: josh_ram@hotmail.com DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm a 11:50pm

5) D clic sobre EMULATE y abra la ventana de variables (en el botn vars), debera visualizar 3 elementos: operando1, operando2 y resultadoascii, seleccione en las opciones de Show as de cada variable, la visualizacin ASCII, en la variable resultadoascii tambin cambie elements a 2. 6) Corra el programa paso a paso hasta antes de ejecutar la operacin AAA, observe el estado del acumulador y de las banderas, especialmente AF ____________________ 7) Ejecute la instruccin 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 nmeros 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 aplicacin 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 add ax,3030h mov resultadoascii, ah
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086

Correo Electrnico: josh_ram@hotmail.com

Pagina 6 / 9

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 TRIM: Invierno 2013

PROFESOR: M. en ING. JORGE RAMOS GARCIA. GPO: B Email: josh_ram@hotmail.com DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm a 11:50pm

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 operacin AAS, observe el estado del acumulador y de las banderas, especialmente AF y CF _________________________________ 15) Ejecute la instruccin 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?

Anlisis de Resultados

PROGRAMA 1 1- Para qu se realiza la instruccin ADD AX, 3030h? 2- En qu formato de decimal (empaquetado o no empaquetado) se da el resultado, despus del ajuste, en AAA?

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086

Correo Electrnico: josh_ram@hotmail.com

Pagina 7 / 9

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 TRIM: Invierno 2013

PROFESOR: M. en ING. JORGE RAMOS GARCIA. GPO: B Email: josh_ram@hotmail.com DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm a 11:50pm

PROGRAMA 2 1- En qu formato de decimal (empaquetado o no empaquetado) se da el resultado, despus del ajuste, en AX? 2- Cmo puede arreglarse el hecho de tener un resultado negativo en el programa y que no me afecte la presentacin del resultado en pantalla?

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

Investigacin Complementaria

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

Bibliografa

Ayuda del EMU8086 (Instrucciones del 8086). Alfredo Rojas Ponce. Ensamblador Bsico. Editorial Computec. Primera edicin. 1993. Cap. 6 , pags. 177 191 Clasificacin UDB: 001.6404 R471 1993. Barry B. Brey. Los microprocesadores Intel, Arquitectura, programacin e interfaces. Editorial Prentice Hall, Tercera Edicin. Clasificacin UDB: 001.6404 B847 1997.

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086

Correo Electrnico: josh_ram@hotmail.com

Pagina 8 / 9

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 TRIM: Invierno 2013

PROFESOR: M. en ING. JORGE RAMOS GARCIA. GPO: B Email: josh_ram@hotmail.com DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm a 11:50pm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu8086

Correo Electrnico: josh_ram@hotmail.com

Pagina 9 / 9

Вам также может понравиться