Sei sulla pagina 1di 25

PRCTICA N: 1.

Programacin bsica

MATERIA: INFORMATICA BSICA

PROFESOR: M. en ING. JORGE RAMOS GARCIA.

GRUPO: B

Salamanca Gto., martes 31 de enero del 2012

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 Depurador: TD.EXE

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 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 Desarrollo: 1. PROGRAMA QUE RECIBE UN DATO DEL TECLADO Y LO EXHIBE EN PANTALLA.

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-

-fin del programa-

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-

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. -inicio del programa-

-fin del programa-

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) -Inicio del programa-

-Fin del programa-

6. BASNDOSE EN EL ALGORITMO DEL PUNTO 5, REALICE LA OPERACIN DE DIVISIN (DIV) EN ENSAMBLADOR. -Inicio del programa-

-Fin del programa-

7. EJECUTE EL SIGUIENTE PROGRAMA.

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.

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

Potrebbero piacerti anche