PRACTICA 02 Prog Basica Oto2014 Informatica

18
MATERIA: INFORMATICA BÀSICA PROFESOR: ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programación. DPTO.: COMUNICACIONES Y ELECTRÒNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Otoño 2014 HORARIO: MARTES y JUEVES de 12:30pm - 2:45pm LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806 Correo Electrónico: [email protected] Pagina 1 / 18 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 / emu8086 Todas las prácticas de laboratorio estarán estructuradas de la siguiente forma:  Objetivo.  Recursos.  Teoría.  Desarrollo de ejercicios y entrega de resultados

Transcript of PRACTICA 02 Prog Basica Oto2014 Informatica

  • MATERIA: INFORMATICA BSICA PROFESOR: ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Otoo 2014 HORARIO: MARTES y JUEVES de 12:30pm - 2:45pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806 Correo Electrnico: [email protected] Pagina 1 / 18

    ENSAMBLADOR 8086 TASM/MASM/EMU8086

    PROGRAMACIN PRCTICAS DE LABORATORIO

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Otoo 2014 HORARIO: MARTES y JUEVES de 12:30pm - 2:45pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806 Correo Electrnico: [email protected] Pagina 2 / 18

    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, [email protected] (reporte lo que haya observado y sus conclusiones, adems los

    archivos fuente .ASM cuando se realicen ejercicios propuestos)

    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

    mailto:[email protected]:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Otoo 2014 HORARIO: MARTES y JUEVES de 12:30pm - 2:45pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806 Correo Electrnico: [email protected] Pagina 3 / 18

    PRACTICA NO. 02 programacin bsica

    OBJETIVO:

    1. Rutinas para lectura de datos desde el teclado. 2. Rutinas para exhibir datos en pantalla. 3. 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 ; mueve un valor inmediato al registro ax

    mov bx,cx ; mueve en valor registro desde cx a bx

    mov dx,Number ; 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 ; Llama a la interrupcin nmero 21 (hexadecimal)

    int 10h ; 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 ; el servicio nmero 9 (decimal) se pasa al registro AH

    int 21h ; llamada a la interrupcin 21

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Otoo 2014 HORARIO: MARTES y JUEVES de 12:30pm - 2:45pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806 Correo Electrnico: [email protected] Pagina 4 / 18

    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 ; ok

    mov ax,Number1 ;error

    mov bx,Number2 ; ok

    mov bl,Number2 ; error

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

    registros de 16 bits

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Otoo 2014 HORARIO: MARTES y JUEVES de 12:30pm - 2:45pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806 Correo Electrnico: [email protected] Pagina 5 / 18

    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

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Otoo 2014 HORARIO: MARTES y JUEVES de 12:30pm - 2:45pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/EMU806 Correo Electrnico: [email protected] Pagina 6 / 18

    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

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 7 / 18

    RESUMEN DE INSTRUCCIONES.

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

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 8 / 18

    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.

    - i n i c i o d e l p r o g r a m a -

    ; 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

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 9 / 18

    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

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 10 / 18

    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-

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 11 / 18

    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

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 12 / 18

    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-

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 13 / 18

    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 ;titulo principal

    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

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 14 / 18

    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

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 15 / 18

    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

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 16 / 18

    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

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 17 / 18

    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 ;nombre

    mov ah,02h

    int 21h

    mov dl, ini_ap_pat ;ap. paterno

    mov ah,02h

    int 21h

    mov dl, ini_ap_mat ;ap. materno

    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

    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

    mailto:[email protected]

  • MATERIA: INFORMATICA BSICA PROFESOR: M. en ING. JORGE RAMOS GARCIA. CLAVE: CEI02.09 GPO: B PREREQUISITOS: Leguaje de programacin. Email: [email protected] DPTO.: COMUNICACIONES Y ELECTRNICA DICIS DIV. INGENIERIAS CAMPUS IRAPUATO-SALAMANCA UNIVERSIDAD DE GUANAJUATO, Salamanca, Gto. Mex. SALON: 309 Cuatrimestre: Invierno 2014 HORARIO: MARTES y JUEVES de 10:15pm a 12:30pm

    LENGUAJE ENSAMBLADOR 8086 USANDO TASM/MASM/emu80086 Correo Electrnico: [email protected] Pagina 18 / 18

    mailto:[email protected]://www.google.com.mx/imgres?imgurl=http://3.bp.blogspot.com/_RcrGybPkLNQ/SupBsb7hGFI/AAAAAAAAAJc/YiRMMRJ6vwA/s400/binary_clock.jpg&imgrefurl=http://pcpilloixa1.blogspot.com/2009_10_01_archive.html&usg=__m95kD8bBaD1HWIrCWE8Zk2YfO6M=&h=250&w=250&sz=15&hl=es&start=7&zoom=1&itbs=1&tbnid=9kYZfIRKSasj2M:&tbnh=111&tbnw=111&prev=/images%3Fq%3Dinformatica%2Bbinaria%26hl%3Des%26sa%3DG%26gbv%3D2%26tbs%3Disch:1&ei=Kdc8TdLCNpPGsAPxpbWGAw