Está en la página 1de 18

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

: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Invierno 2013

PROFESOR: ING. JORGE RAMOS GARCIA. GPO: B DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm - 11:55pm

ENSAMBLADOR 8086
TASM/MASM/EMU8086

PROGRAMACIN
PRCTICAS DE LABORATORIO

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806

Correo Electrnico: josh_ram@hotmail.com

Pagina 1 / 18

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

PROFESOR: ING. JORGE RAMOS GARCIA. GPO: B DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm - 11:55pm

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 / emu8086

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/EMU806

Correo Electrnico: josh_ram@hotmail.com

Pagina 2 / 18

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

PROFESOR: ING. JORGE RAMOS GARCIA. GPO: B DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm - 11:55pm

PRACTICA NO. 1

programacin bsica

OBJETIVO: 1. 2. 3. Rutinas para lectura de datos desde el teclado. Rutinas para exhibir datos en pantalla. Operaciones aritmticas bsicas en ensamblador (ADD,SUB,MUL,DIV)

RECURSOS:

Para implementar los ejercicios de programacin en lenguaje ensamblador se utilizarn las siguientes herramientas de software: Editor: EDIT / NE / o cualquier otro que genere archivos ASCII. Ensamblador: TASM.EXE Enlazador: TLINK.EXE
Emulador: EMU8086.exe (entorno)

TEORIA.
Instrucciones bsicas Hay una serie de instrucciones importantes y necesarias para cualquier programa en ensamblador. La ms importante es la instruccin MOV. MOV: mueve un valor de un lugar a otro. MOV destino, origen Ejemplos: mov ax,10 mov bx,cx ; mov dx,Number ; mueve un valor inmediato al registro ax mueve en valor registro desde cx a bx ; mueve el valor memoria definido como Number a dx

INT: llama a una funcin del DOS o BIOS a travs de una subrutina para realizar un servicio especial, por ejemplo manipular el vdeo, la pantalla, abrir un fichero, escribir en un puerto, etc. En este texto usaremos una de ellas, la salida a pantalla, que se corresponde con la 21h. Las dems se pueden consultar en la bibliografa. INT interrupt number Ejemplos: int 21h int 10h

; Llama a la interrupcin nmero 21 (hexadecimal) ; Llama a la interrupcin del Video en la BIOS

Casi todas las interrupciones tienen asociados ms de un servicio, por ello es necesario pasar el nmero de servicio deseado. Se utiliza para ello el registro AH. El ejemplo ms usado es escribir algo en la pantalla del monitor: mov ah,9 int 21h ; el servicio nmero 9 (decimal) se pasa al registro AH ; llamada a la interrupcin 21

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806

Correo Electrnico: josh_ram@hotmail.com

Pagina 3 / 18

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

PROFESOR: ING. JORGE RAMOS GARCIA. GPO: B DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm - 11:55pm

El servicio, o funcin, nmero 9 se corresponde a la impresin de caracteres en pantalla. Para ello, antes es necesario especificar qu vamos a escribir en pantalla. Se hace uso de DS:DX que ser el puntero de la direccin fsica en memoria indicando dnde se encuentra la cadena de caracteres a imprimir en pantalla. La cadena de caracteres se termina con el smbolo ($). Sera sencillo si pudisemos escribir directamente en DS, como no es posible, tenemos que usar el registro AX para generar la direccin fsica. El ejemplo es el siguiente: mov dx,OFFSET Message ; DX contiene el offset de message mov ax,SEG Message ; AX contiene el segmento del message mov ds,ax ; DS:DX apunta a la direccin fsica del mensaje mov ah,9 ; carga el servicio 9 caracteres a pantalla int 21h ; llamada a la interrupcin de DOS Las directivas OFFSET y SEG indican al compilador que el segmento y el offset de Message se use para obtener la direccin fsica en memoria la cadena de datos, para posteriormente escrib ir a pantalla. Hecho esto, podremos enviar el mensaje a la pantalla, escribiendo previamente en el segmento de datos el mensaje con la etiqueta y la directiva DB de la siguiente forma: Message DB "Estructura y Tecnologa de Computadores. Prctica 1$" Ntese que la cadena de caracteres termina con el smbolo ($). DB es una directiva para asignar memoria a variables del tipo byte y el contenido del mensaje en un array de bytes (ASCII). Adems de formato bytes (DB) se puede usar formatos tipo word (DW) y doble word (DD). Number1 db ? Number2 dw ? El smbolo (?) al final de la lnea indica que no hay inicializacin. Number1 db 0 Number2 dw 1 En este caso Number1 es igual a 0 y Number2 es igual a 1. Hay que tener en cuenta el tamao de los datos, por ejemplo: mov al,Number1 mov ax,Number1 mov bx,Number2 mov bl,Number2 ; ok ;error ; ok ; error

Lo que indica que, nicamente se pueden usar bytes en registros de 8 bits y palabras en registros de 16 bits

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806

Correo Electrnico: josh_ram@hotmail.com

Pagina 4 / 18

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

PROFESOR: ING. JORGE RAMOS GARCIA. GPO: B DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm - 11:55pm

RUTINAS EMPLEADAS EN LOS PROGRAMAS DE ESTA PRACTICA. INT 21H Funcin 09H Visualizacin de una cadena de caracteres LLAMADA: AH = 09H DS:DX = Segmento: Desplazamiento de la cadena a visualizar (in DX - offset address of string in data segment) DS debe apuntar al segmento donde se encuentra la cadena. DX debe contener el desplazamiento de la cadena dentro de ese segmento. Ejemplo: Definition of the message in Data segment MSG DB "This is a message$" or "This...","$" Program in Code segment Mov AH, 09H Mov DX, Offset MSG Int 21 H DEVUELVE: NADA. EFECTO: Se enva una cadena de caracteres al dispositivo estndar de salida. Si no se ha redireccionado la salida, la cadena se enviar a la pantalla. INT 21H Funcin 01H Entrada de Carcter con Eco ( salida) LLAMADA: AH = 01H DEVUELVE: AL = Cdigo ASCII del Carcter ledo y Echo a pantalla (si AH =08H) es servicio sin Echo) EFECTO: Se lee un carcter del dispositivo de entrada estndar, y se enva al dispositivo estndar de salida. Si al llamar a la funcin no haba ningn carcter disponible, se esperar a que lo haya. Normalmente el dispositivo estndar de entrada es el teclado, y el dispositivo estndar de salida es la pantalla.

INT 21H Funcin 02H Salida de Carcter LLAMADA: AH = 02H DL = Cdigo ASCII a enviar al dispositivo de salida. DEVUELVE: NADA. EFECTO: Se enva el carcter depositado en el registro DL al dispositivo estndar de salida. La salida puede ser redireccionada hacia un fichero, impresora, etc

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806

Correo Electrnico: josh_ram@hotmail.com

Pagina 5 / 18

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

PROFESOR: ING. JORGE RAMOS GARCIA. GPO: B DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. HORARIO: MARTES y JUEVES de 10:00pm - 11:55pm

APUNTES PARA LOS EJERCICIOS 3 y 4 DE ESTA PRCTICA.


ADD destino, origen (ADDition, sumar) {O,S,Z,A,P,C} Suma origen y destino, guardando el resultado en destino. Si al sumar los dos ltimos bits "me llevo una" el bit de carry se pone a 1 (y si no, a 0). Instruccin ADD

Sumar Sintaxis: ADD reg,imm Ejemplo: ADD BL, 10 BL= BL +10 ADD reg, reg Sumar el contenido del 2 registro al contenido del 1. Ejemplo: ADD BL, AL ; No cambia el valor de AL BL= BL + AL ADD reg,mem ADD mem,reg ADD mem, mem ADD mem,imm
SUB destino, origen (SUBstract, resta) {O,S,Z,A,P,C} Resta a destino lo que haya en origen

Instruccin SUB Resta Sintaxis: SUB reg, imm SUB reg, reg SUB reg,mem SUB mem,reg SUB mem, mem SUB mem,imm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806

Correo Electrnico: josh_ram@hotmail.com

Pagina 6 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

RESUMEN DE INSTRUCCIONES. AAA, AAD, AAM, AAS ADD ADC CBW CMP CWD DAA, DAS DEC DIV IDIV IMUL INC MUL NEG SBB SUB ajuste ASCII para suma, divisin, producto y resta suma datos entre registros o la memoria y otro registro suma con acarreo convierte byte a palabra compara los datos convierte palabra a doble palabra ajuste decimal en AL para una suma/resta en BCD decrementa operando en 1 divisin sin signo divisin con signo multiplicacin con signo incrementa operando en 1 multiplicacin sin signo cambia el signo resta con acarreo resta datos entre los registros y la memoria u otro reg.

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Correo Electrnico: josh_ram@hotmail.com

Pagina 7 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

DESARROLLO DE EJERCICIOS.
Cada uno de los ejercicios se pueden desarrollar ya sea utilizando TASM o EMU8086.

1.

PROGRAMA QUE RECIBE UN DATO DEL TECLADO Y LO EXHIBE EN PANTALLA.

- inicio

del

programa -

; archivo: TECLA.ASM ;----------------------a los nombres de los archivos asignelos de una a 8 letras, ;----------------------y la extension asignela con las letras .ASM ; Fecha: ; materia: informatica basica ; Universidad de Guanajuato. Campus Irapuato-Salamanca ; .MODEL SMALL .STACK .DATA _msg_titulo db 10,13,' PRESIONA UNA TECLA: $' _TECLA DB ? _msg_salida db 10,13,' USTED PRESIONO LA TECLA: $' _msg_repeticion db 10,13,10,13,'***** repetido 3 veces ****** ',10,13,10,13,'$'

.CODE _PROGRAMA: ;segmento de datos mov ax,@data mov ds,ax ;mensaje en pantalla mov dx,offset _msg_titulo mov ah,09h int 21h ;entrada de dato desde teclado MOV AH,01H INT 21H mov _tecla,al ;mensaje a pantalla mov dx,offset _msg_salida mov ah,09h int 21h ;dato a pantalla MOV DL,_TECLA mov ah,02h
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Correo Electrnico: josh_ram@hotmail.com

Pagina 8 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

int 21h ;mensaje a pantalla mov ah,09h mov dx,offset _msg_repeticion int 21h ;datos repetidos MOV DL,_TECLA mov ah,02h int 21h int 21h int 21h

_SALIR: MOV AH,4CH INT 21H END _PROGRAMA


-fin del programa-

2.

PROGRAMA QUE RECIBE UN DATO Y VERIFICA QUE SEA SOLO NUMERO (0-9) EN CASO DE PRESIONAR UNA TECLA QUE NO SE NUMERO EMITE UN ERROR EN PANTALLA.

-inicio del programa-

; archivo: NUMERO.ASM ;----------------------a los nombres de los archivos asignelos de una a 8 letras, ;----------------------y la extension asignela con las letras .ASM ; Fecha: ; materia: informatica basica ; Universidad de Guanajuato. Campus Irapuato-Salamanca ; .MODEL SMALL .STACK .DATA _msg_titulo db 10,13,' PRESIONA UNA TECLA: $' _TECLA DB ? _msg_salida db 10,13,' USTED PRESIONO LA TECLA: $' _msg_ERROR db 10,13,10,13,'***** E R R O R, el dato no es NUMERO ****** ',10,13,10,13,'$' _msg_numero db 10,13,' !! El dato dado SI es un Numero !! ',10,13,'$' .CODE _PROGRAMA: ;segmento de datos mov ax,@data
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Correo Electrnico: josh_ram@hotmail.com

Pagina 9 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

mov ds,ax ;mensaje en pantalla mov dx,offset _msg_titulo mov ah,09h int 21h ;entrada de dato desde teclado MOV AH,01H INT 21H mov _tecla,al ;mensaje a pantalla mov dx,offset _msg_salida mov ah,09h int 21h ;dato dado enviado a pantalla mov dl,_tecla mov ah,02h int 21h ;----------------------------------;checar la condicion de la tecla presionada mov al,_tecla cmp al,030h jl _error cmp al,039h jg _error ;mensaje correcto de numero mov dx,offset _msg_numero mov ah,09h int 21h jmp _salir ;mensaje de error a pantalla _error: mov dx,offset _msg_error mov ah,09h int 21h ;----------------------------------_SALIR: MOV AH,4CH INT 21H END _PROGRAMA
-fin del programa-

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Correo Electrnico: josh_ram@hotmail.com

Pagina 10 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

3.

EN ESTE PROGRAMA SE DISEA EL ALGORITMO PARA EL CALCULO DE LA SUMA DE DOS VALORES DADOS, CADA VALOR DADO ESTA ENTRE 0 Y 9
-inicio del programa-

; archivo: sumaXY.ASM ;----------------------a los nombres de los archivos asignelos de una a 8 letras, ;----------------------y la extension asignela con las letras .ASM ; Fecha: ; materia: informatica basica ; Universidad de Guanajuato. Campus Irapuato-Salamanca ; .MODEL SMALL .STACK .DATA _msg_titulo db 10,13,' --- Suma de dos numeros X + Y --- ',10,13,10,13,'$' _X DB ? _msg_X db 10,13,' DAR UN NUMERO X= $' _Y db ? _msg_Y db 10,13,' DAR UN NUMERO Y= $' _suma db ? _msg_salida db 10,13,' La suma es ===> $'

.CODE _PROGRAMA: ;segemento de datos mov ax,@data mov ds,ax ;mensaje en pantalla mov dx,offset _msg_titulo mov ah,09h int 21h ;entrada de dato X MOV DX,OFFSET _MSG_X MOV AH,09H INT 21H MOV AH,01H INT 21H mov _X,al ;al dato X se le resta 030h
Correo Electrnico: josh_ram@hotmail.com

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Pagina 11 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

sub _x,30h

;entrada de dato Y MOV DX,OFFSET _MSG_Y MOV AH,09H INT 21H MOV AH,01H INT 21H mov _Y,al ;al dato y se le resta 030h sub _y,30h ;----------------------------------;calculo de la suma de los dos numeros MOV AL,_X ADD AL,_Y ; SE SUMA X+Y MOV _SUMA,AL ; RESULTADO DE LA SUMA ;mostrar resultado en pantalla mov dx,offset _msg_salida mov ah,9h int 21h mov dl,_suma ;SE AGREGA 030H al resultado para el valor ASCII add dl,030h mov ah,02h int 21h ;----------------------------------_SALIR: MOV AH,4CH INT 21H END _PROGRAMA

-fin del programa-

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Correo Electrnico: josh_ram@hotmail.com

Pagina 12 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

4.

EN BASE AL EJERCICIO 3, INTENTE DISEAR EL ALGORITMO QUE CALCULE LA RESTA DE DOS NUMEROS. SIGA LA LOGICA EN EL CLCULO DE LA SUMA. POSTERIORMENTE EN SALON SE EXPLICARA SU DESARROLLO Y LOS DETALLES DE RESULTADO A PANTALLA.

5.

MEDIANTE EL ALGORITMO SIGUIENTE SE REALIZA LA OPERACIN DE MULTIPLICACIN (MUL) EN ENSAMBLADOR. CHEQUE SU DISEO BSICO CON UN DIGITO. (Observacin: el ejercicio no tiene las condiciones de proteccin para posibles errores como es la exhibicin correcta de los dgitos en pantalla o nmeros de ms de dos dgitos, se analizara en clase dichas soluciones) title multiplica ;************************* ; Fecha: ; Informatica Basica ; Universidad de Guanajuato, Campus Irapuato-Salamanca ; Prof. Ing Jorge Ramos Garcia ;***************************************************** .MODEL SMALL .STACK .DATA CRLF db 10,13,10,13,"$" _comenta1 db 10,13,"Multiplicacion Basica de un digito $" x db ? y db ? _comentaX db 10,13,"X= $" _comentaY db 10,13,"Y= $" _oper_mul db 0 _comenta2 db 10,13,10,13," Resulatdo es = $" .CODE _multiplica: MOV AX,@DATA MOV DS,AX ;------MOV DX,OFFSET _comenta1 MOV AH,09H INT 21H mov dx,offset _comentaX mov ah,09h int 21h ;entrada de valor X MOV AH,01H INT 21H MOV X,AL SUB X,30H mov dx,offset _comentaY mov ah,09h ;titulo principal

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Correo Electrnico: josh_ram@hotmail.com

Pagina 13 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

int 21h ;entrada de valor Y MOV AH,01H INT 21H MOV Y,AL SUB Y,30H mov ax,0 ;limpiar registro AX mov al,x mul y ;asignar resultado mov _oper_mul,al ;mandar a pantalla resultado mov dx,offset _comenta2 mov ah,09h int 21h MOV DL,_oper_mul ADD DL,30H MOV AH,02H INT 21H _salir_DOS: ;------MOV AH,4CH INT 21H END _multiplica 6. BASNDOSE EN EL ALGORITMO DEL PUNTO 5, REALICE LA OPERACIN DE DIVISIN (DIV) EN ENSAMBLADOR.

7.

EJECUTE EL SIGUIENTE PROGRAMA. title digitos ;-----------------------------; Trim ; Universidad de Guanajuato ; Prof. Ing Jorge Ramos Garcia ; Informatica Basica ; USO DE TASM ;-----------------------------.MODEL SMALL .STACK .DATA n1 db ? n2 db ? linea db 10,13,'$' coment1 db 10,13,'Introduce un digito: (0-9)? $' coment2 db 10,13,'SU NUMEROS INGRESADOS SON: $' .CODE
Correo Electrnico: josh_ram@hotmail.com

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Pagina 14 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

PROG_1: ;SEGEMENTO DE DATOS MOV AX,@DATA MOV DS,AX ;------------------lea dx,coment1 mov ah,09h int 21h ;lecctura de teclado sin echo mov ah,08h int 21h mov n1,al ;aparece un simbolo asterisco mov dl,'*' mov ah,02h int 21h lea dx,coment1 mov ah,09h int 21h ;lecctura de teclado sin echo mov ah,08h int 21h mov n2,al ;aparece un simbolo asterisco mov dl,'*' mov ah,02h int 21h ;mostrar digitos ingresados ;inserta una linea lea dx, linea mov ah,09h int 21h LEA DX,COMENT2 MOV AH,09H INT 21H mov dl,n1 mov ah,02h int 21h ;----mov dl,'y' mov ah,02h int 21h ;----mov dl,n2 mov ah,02h int 21h ;------------;REGReSO A D.O.S. MOV AH,4CH INT 21H END PROG_1
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Correo Electrnico: josh_ram@hotmail.com

Pagina 15 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

8.

DISEE UN PROGRAMA QUE SOLICITE 3 DIGITOS Y MUESTRE EN PANTALLA LAS COMBINACIONES COMO EN EL EJEMPLO SIGUIENTE: Ej. entrada de datos al programa digito 1:? 4 digito 2:? 7 digito 3:? 3 salida de ternas a pantalla en forma vertical 473 437 743 734 347 374

9.

EL SIGUIENTE PROGRAMA SOLICITA LAS INCIALES DE SU NOMBRE Y LAS EXHIBE EN PANTALLA ENTRE DOS LINEAS DEL CARCTER *. SE UTILIZAN LAS RUTINAS DADAS EN LA SECCION DE TEORIA. ; ------------ Ejemplo de introducir datos y mostrarlos en pantalla --------.model small .stack .data aster db 10,13,'**************************************** ',10,13,'$' msg_nom db 10,13,'Dar la incial de tu nombre: $' ini_nom db ? msg_pat db 10,13,'Dar la incial de tu apellido paterno: $' ini_ap_pat db ? msg_mat db 10,13,'Dar la incial de tu apellido materno: $' ini_ap_mat db ? .code programa: mov ax,@data mov ds,ax ;--------------------------

inicia programa principal ---

;---leer la inicial del nombre mov dx,offset msg_nom mov ah,09h int 21h mov ah,1h int 21h mov ini_nom, AL ;--- leer la inicial del apellido paterno
LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Correo Electrnico: josh_ram@hotmail.com

Pagina 16 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

mov dx,offset msg_pat mov ah,09h int 21h mov ah,1h int 21h mov ini_ap_pat, AL ;--- leer la incial del apellido materno mov dx,offset msg_mat mov ah,09h int 21h mov ah,1h int 21h mov ini_ap_mat, AL ;---- mostrar iniciales en pantalla ------------------;imprimir asteriscos mov dx,offset aster mov ah,09h int 21h ;iniciales en orden de Nombre_Apellidopaterno_Apellidomaterno mov dl, ini_nom mov ah,02h int 21h mov dl, ini_ap_pat mov ah,02h int 21h mov dl, ini_ap_mat mov ah,02h int 21h ;imprimir asteriscos mov dx,offset aster mov ah,09h int 21h ;--------------------------- terminan las instrucciones del programa mov ah,4ch int 21h end programa ;nombre

;ap. paterno

;ap. materno

10. DISEE UN PROGRAMA QUE SOLICITE UN NUMERO ENTRE 0 Y 9. LUEGO IMPRIMA DICHO NUMERO Y LOS DOS NUMEROS SIGUIENTES EN ORDEN CRECIENTE. (utilice las rutinas de lectura desde teclado y salida a pantalla, adems de la operacin de suma ADD explicada en uno de los ejercicios arriba). Ejemplo: Numero:? 5 Imprimir: 5 6 7

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Correo Electrnico: josh_ram@hotmail.com

Pagina 17 / 18

MATERIA: INFORMATICA BSICA CLAVE: CEI02.09 PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA SALON: 309 Cuatrimestre: Otoo 2012

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 12:00pm a 2:00pm

LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086

Correo Electrnico: josh_ram@hotmail.com

Pagina 18 / 18