Ir al contenido principal

Imprimir texto (Ensamblador)

Cuando trabajamos en ensamblador tendremos la necesidad de mostrar textos en la pantalla, ya sea para informar una acción, comunicar una solicitud o mostrar un resultado, este macro te va a ser de utilidad tanto como a mí.

¿Qué es una cadena de texto?

Una serie de caracteres finalizada por dolar '$', el dolar le indica al compilador que el texto finalizó.

¿Que necesita el macro?

El macro necesita que se reserve una cadena de texto como la siguiente declaración:

        string db 7 dup('$')

dónde: 
  • string Identificador del comienzo de la cadena de texto
  • db Le dice al compilador que la 'variable' será de tipo byte
  • 7 Cantidad de caracteres que contiene la cadena de texto
  • dup('$') Llena la cadena de texto con el carácter dolar

Funciones a utilizar

Para imprimir un carácter

Función: 02h
Interrupción: 21h

Para imprimir una cadena de texto

Función: 09h
Interrupción: 21h

Macros utilizados

Imprimir un carácter

        PrintChar MACRO char 
            MOV ah, 02h 
            MOV dl, char 
            INT 21h 
        ENDM
Dónde:
  • dl: Indica el carácter a imprimir

Imprimir una cadena de texto

        PrintString MACRO string 
            MOV ah, 09h 
            MOV dx, OFFSET string 
            INT 21h 
        ENDM
Donde:
  • dx: Inicio de la cadena de caracteres a imprimir
  • OFFSET: Indica que posicionará el puntero al inicio del identificador indicado

Ejemplo

Este y más ejemplos de macros lo tengo en mi GitHub. Entra aquí

Comentarios

Entradas populares de este blog

Imprimir número (Ensamblador)

Trabajando con operaciones que involucren cifras numéricas en ensamblador, queremos escribir los resultados ya sea en la consola o en un archivo, y aquí es donde este macro me ha sacado la tarea. ¿Hay alguna condición para imprimir los números? Podemos trabajar con la base que queramos, porque el compilador lo convierte a una misma base según la operación que realicemos. ¿Qué necesita el macro? Este macro necesita la reserva de memoria para los dígitos ASCII del número a escribir res db 4 dup('$') A sí mismo, se puede declarar de un número como el siguiente:  number db 58 Como también enviar el número a través de uno de los registros o directamente Nemónimos a utilizar MOV destino, fuente : Transfiere el valor del registro fuente hacia el registro destino. DIV divisor : Realiza la división aritmética del registro AX entre el registro que se envía. este nemónimo utiliza el registro DX para almacenar el residuo, por lo que este debería ser 0 an

Kits 2012 para FIFA 07

Kits de algunas selecciones nacionales y algunos clubes para FIFA 07: