0 calificaciones0% encontró este documento útil (0 votos)
25 vistas5 páginas
Este documento describe una práctica de programación en lenguaje ensamblador que involucra las funciones scanf y printf. El programa recibe un número hexadecimal de 32 bits usando scanf, lo convierte a formato BCD y luego lo imprime como cadena decimal usando printf. También explica brevemente el lenguaje ensamblador, scanf y printf.
Este documento describe una práctica de programación en lenguaje ensamblador que involucra las funciones scanf y printf. El programa recibe un número hexadecimal de 32 bits usando scanf, lo convierte a formato BCD y luego lo imprime como cadena decimal usando printf. También explica brevemente el lenguaje ensamblador, scanf y printf.
Este documento describe una práctica de programación en lenguaje ensamblador que involucra las funciones scanf y printf. El programa recibe un número hexadecimal de 32 bits usando scanf, lo convierte a formato BCD y luego lo imprime como cadena decimal usando printf. También explica brevemente el lenguaje ensamblador, scanf y printf.
INGENIERÍAS DIVISIÓN DE ELECTRÓNICA Y COMPUTACIÓN DEPART. DE CIENCIAS COMPUTACIONALES
SEMINARIO DE SOLUCIÓN DE PROBLEMAS DE
TRADUCTORES DE LENGUAJE l
REPORTE PRACTICA #4
Gerardo David Zepeda Ortiz
Profesor: Valentín Martínez López
Sección: D05
Ciclo Escolar: 2017-A.
Practica 4: " Rutinas de servicio scanf y printf " Introducción En la siguiente práctica se implementará un programa en lenguaje ensamblador que reciba un número de 32 bits, que sea introducido por el teclado mediante la función scanf como valor hexadecimal y que sea convertido a bcd, para posteriormente imprimirse en pantalla como una cadena decimal, mediante la función printf. Lenguaje Ensamblador El lenguaje ensamblador, o assembler (en inglés assembly language y la abreviación asm), es un lenguaje de programación de bajo nivel. Consiste en un conjunto de mnemónicos que representan instrucciones básicas para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura de procesador y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Cada arquitectura de procesador tiene su propio lenguaje ensamblador que usualmente es definida por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico de cierta arquitectura de computador física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que idealmente son portátiles. Un programa utilitario llamado ensamblador es usado para traducir sentencias del lenguaje ensamblador al código de máquina del computador objetivo. El ensamblador realiza una traducción más o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemónicas a las instrucciones y datos de máquina. Esto está en contraste con los lenguajes de alto nivel, en los cuales una sola declaración generalmente da lugar a muchas instrucciones de máquina. Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se contaba con potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, alto rendimiento, o un uso de recursos controlado y reducido. También es utilizado en el desarrollo de controladores de dispositivo (en inglés, device drivers) y en el desarrollo de sistemas operativos, debido a la necesidad del acceso directo a las instrucciones de la máquina. Muchos dispositivos programables (como los microcontroladores) aún cuentan con el ensamblador como la única manera de ser manipulados. Función Printf La función printf permite escribir en la salida estándar (monitor), proporcionando un formato específico para los datos a escribir. Esta función recibe una cantidad variable de argumentos, en los que solo uno de ellos es obligatorio: la cadena de formato. Este parámetro es una cadena que permite indicar el formato que tendrá la impresión que se quiere realizar, y en base a la cual se determina la cantidad y tipo de los parámetros restantes. Dicha cadena puede contenter caracteres comunes y corrientes, los cuales se mostrarán en pantalla exactamente como se encuentran en la cadena, y un segundo tipo de caracteres conocidos como especificadores de formato, los cuales están formados por un símbolo de porcentaje (%) y un código de formato. Además de la cadena de formato, deben existir tantos parámetros adicionales como especificadores de formato contenga la cadena, ya que cada uno de los mismos proporciona el valor por el cual será sustituido cada especificador al momento de mostrar la cadena por la pantalla. Dicho de otra manera, la cadena de formato puede ser vista como una plantilla, mientras que el resto de los parámetros son los valores que completan los campos vacíos de dicha plantilla. Función Scanf La función scanf permite leer desde la entrada estándar, proporcionando un formato específico para los datos a recibir. De forma análoga a la función printf, esta función permite reconocer los tipos de datos especificados por el estándar ANSI de C tales como números, caracteres y cadenas. Los argumentos recibidos por la función scanf son similares a los de la función printf, siendo de nuevo el primero de ellos la cadena de formato. Sin embargo en este caso la cadena de formato es utilizada para especificar una "plantilla" que deberá ser completada con la entrada proporcionada por el usuario. En este caso, por cada especificador de formato que se encuentre en la cadena será necesario proporcionar un apuntador a la dirección de memoria en la que será almacenado el elemento reconocido. Los especificadores de formato compatibles con la función scanf son los mismos que para printf. Desarrollo En la primera captura podemos observar la correcta compilación del programa. Además de una Impresión en pantalla de la cadena decimal obtenida mediante la función printf.
En está parte se puede observar la casi terminada depuración del programa.
Por último se puede observar el archivo lst, que se ha obtenido al compilar de manera correcta nuestro archivo .asm. En está ocasión no se me permitió crear el archivo .o Sin embargo se puede demostrar que el programa funciona correctamente.