Tema IV Prácticas - Crypto-ch4r/Lenguajes-de-Interfaz- GitHub Wiki

Práctica # 1

Resumen

En está práctica imprimimos un texto en la salida estándar, a este texto se le va a aplicar determinado formato y colores específicos haciendo uso de macros para configurar los registros necesarios para lograr dichas modificaciones.

Objetivo

Realizar impresiones en la salida estándar, aplicando formatos y colores específicos en la terminal.

Introducción

En está practica nos vamos a enfocar en imprimir texto en la salida estándar de manera personalizada añadiendo colores, aprovechando los códigos de control de escape para aplicar formatos y colores específicos en la terminal. A través de una combinación de instrucciones y macros, el programa modifica los registros necesarios y realiza llamadas al sistema para lograr el efecto deseado.

Metodología

Código

%macro imprime 2
mov eax, 4
mov ebx, 1
mov ecx, %1
mov edx, %2
int 0x80
%endmacro

section .data
texto db "--------- text ----------"
lontexto equ $-texto

codigo db 0x1b, "[33;44m", 0x1b, "[2j", 0x1b, "[5;20f"
loncodigo equ $-codigo

codigo2 db 0x1b, "33;44m"
loncodigo2 equ $-codigo2

section .text
    global _start

_start:

imprime codigo, loncodigo
imprime texto, lontexto
imprime codigo2, loncodigo
imprime texto, lontexto

mov eax, 1
mov ebx, 0
int 0x80

Empezamos nuestro código definiendo una macro llamada "imprime" que toma dos argumentos. La vamos a utilizar para imprimir una cadena de texto en la salida estándar. Los valores de los argumentos se utilizan para configurar los registros necesarios para llamar a la interrupción del sistema "int 0x80" y realizar la llamada al sistema para imprimir el texto.

Después, en la sección de datos vamos a definir diferentes datos (cadenas de texto, códigos de control, etc. )que vamos a utilizar en el programa.

  • La cadena de texto "texto" contiene el texto que se imprimirá en consola.
  • La variable "lontexto" se utiliza para definir la longitud de la cadena "texto".
  • "codigo" y "codigo2" son códigos de control de escape utilizados para cambiar el formato y el color de la salida en la terminal.
  • "loncodigo" y "loncodigo2" se utilizan para calcular la longitud de los códigos de control de escape.
  • En la sección start indicamos el punto de entrada al programa.
  • Con imprime (el nombre de nuestra macro) la llamamos con los diferentes argumentos establecidos para imprimir todo en la consola.
  • Terminamos el programa con las clásicas etiquetas de cierre (mov eax 1, mov ebx 0 e int 0x80).

Resultados

image

Análisis

El programa imprime texto con formatos y colores personalizados, creando una presentación visualmente atractiva en la terminal de manera correcta.

Conclusiones

Podemos concluir en que es posible personalizar y controlar la apariencia del texto impreso en la terminal mediante el uso de códigos de control de escape. Al utilizar macros y llamadas al sistema, el programa nos permite modificar el formato y el color del texto, lo que crea una experiencia visualmente agradable al usuario.

Este enfoque directo de programación de bajo nivel proporciona un alto nivel de precisión y flexibilidad, lo cual puede ser útil en diversas aplicaciones, como interfaces de usuario basadas en la terminal, presentaciones gráficas y visualización de datos.

Referencias

N/A