DEV Community

Samuel Leonardo
Samuel Leonardo

Posted on

MAWA - Un lenguaje tan simple como Python pero tan potente como Assembler, el ASM moderno pero mucho más sencillo

MAWA - El lenguaje de programación tan sencillo en sintaxis como Python pero tan impresionante como Assembler, podría llamarsele el Assembler Moderno.

A pesar de que ya había hablado antes acerca de MAWA, no lo había profundizado, en este post hablare de ello y expondre un comando de MAWA explicando como funciona y que realiza.

Para los que no leyeron el primer post de MAWA lo pueden leer en este link: https://dev.to/samuel_leonardo_37aff38b4/mawa-el-lenguaje-de-programacion-del-futuro-2bjh mi nombre es Samuel Leonardo Páez Garzón soy Colombiano y tengo 13.1 años.

MAWA es un lenguaje que para empezar es más simple que otros no solo en la parte de sintaxis, sino también en la de compilación, siendo igual que NASM con Assembler.

Un ejemplo de ello es el lenguaje C o C++ en modo de bajo nivel que por medio de un compilador toca hacer .c o .cpp a .o, luego con un linker enlazar a .elf, y luego pasar a .bin, esto es medio largo y requiere de muchas apps, mientras que MAWA y Assembler son así

ASM:
Por medio de NASM se hace .asm a .bin directamente.

MAWA:
Por medio de mi propio compilador se hace .mawa a .bin directamente.

En ese aspecto es bastante simple, sigo con el otro aspecto, La Sintaxis.

Mientras que en ASM o C toca usar en algunos casos bastantes líneas en MAWA NO, se los mostrare.

Los siguientes códigos mostrarán todos:


En color verde claro "0x0A".

Código MAWA:

Imp ('A', DefFinLinea(1), 'B', 0x0A)
FinalLoop (No Extensiones)
Enter fullscreen mode Exit fullscreen mode

Este código MAWA funciona así, en Imp la A se imprime, DefFinLinea(1), genera un salto de línea, luego se imprime B, y el último argumento siempre debe ser el color del fondo y de la letra indicados en el último argumento, por eso esta 0x0A que en colores sería:

0 <- Fondo, A <- Color de Letra
0 es Negro y A es Verde Claro

Si esto fuera al revés la letra sería negra pero su fondo sería verde claro.

Y la segunda línea de código MAWA deja el código en un bucle infinito que no le permite seguir leyendo hacia adelante en el disco, esto se hace para evitar leer bytes 00 y hacer que QEMU lea basura.

Código ASM Secuencia NASM 16 BITS:

BITS 16

inicioCodigo:
    mov ax, 0x0003
    int 0x10

    mov ah, 0x09
    mov al, 'A'
    mov bl, 0x0A
    mov bh, 0x00
    mov cx, 1
    int 0x10

    call finLinea

    mov ah, 0x09
    mov al, 'B'
    mov bl, 0x0A
    mov bh, 0x00
    mov cx, 1
    int 0x10

    jmp $

finLinea:
    mov ah, 0x0E
    mov al, 0x0D
    int 0x10

    mov ah, 0x0E
    mov al, 0x0A
    int 0x10

    ret

times 510 - ($ - $$) db 0
dw 0xAA55
Enter fullscreen mode Exit fullscreen mode

Este código imprime A y B por medio de 0x09 para declarar color, cuando ya se imprimio el caracter 'A' se llama una función para hacer salto de línea que pone automáticamente por medio de 0x0E los bytes 0x0D y 0x0A que hacen un salto de línea CR+LF, si ejecutan este código se vera exactamente igual a la fotografía de QEMU que tengo al inicio de este POST.

En ASM Secuencia NASM 32 BITS:

BITS 32

mov edi, 0xB8000
mov byte [edi], 'A'
mov byte [edi+1], 0x0A

add edi, 160d

mov byte [edi], 'B'
mov byte [edi+1], 0x0A

jmp $
Enter fullscreen mode Exit fullscreen mode

Este código carga en edi la dirección de la memoria VGA de video que se encuentra en 0xB8000, luego se imprime la A con verde claro insertando los valores como bytes en la memoria de video, el byte 1 que es la letra y el byte 2 que es el color en hexadecimal binario, luego la línea add edi, 160d le añade a edi 160 (80 columnas * 2 Bytes), esto es un salto de línea, porque cambia la dirección de edi y la letra se inserta en otra parte, luego se hace el mismo proceso que antes pero con la letra B se inserta el byte 1 que es la B y el byte 2 que es el color verde claro, y luego deja la CPU en un bucle infinito para evitar ejecutar basura.

Como se dieron cuenta la diferencia en cantidad de líneas es abismal en 16 BITS y en 32 BITS no tanto aunque es más eficiente en MAWA.

También estoy creando otro proyecto llamado Win Anti App Anchor que es un SO que esta siendo creado con MAWA, los que quieran saber más acerca de él estare en estos días subiendo un post y poniendolo en este post para conectarlos mutuamente.

Les pido por favor que me apoyen compartiendo este POST a mucha gente y me regalen una reacción y comentarios.

Samuel Leonardo Páez Garzón
24 de Noviembre de 2025 - Todos los derechos de autor reservados.

Top comments (9)

Collapse
 
samuel_leonardo_37aff38b4 profile image
Samuel Leonardo

Ahora diganme que opinan sobre mi lenguaje de programación, y sobre lo que hace.

Collapse
 
samuel_leonardo_37aff38b4 profile image
Samuel Leonardo

Si les gusto compartanlo con otros programadores, por favor.

Collapse
 
samuel_leonardo_37aff38b4 profile image
Samuel Leonardo

Veo que me hicieron caso con lo de enviar a los demás está subiendo a una velocidad extrema en vistas.

Collapse
 
samuel_leonardo_37aff38b4 profile image
Samuel Leonardo

Siguan compartiendo está publicación quiero que sea viral para que las demás personas que programan se enteren y MAWA ya sea conocido y revolucione al grupo de los lenguajes de bajo nivel.

Collapse
 
samuel_leonardo_37aff38b4 profile image
Samuel Leonardo

Si alguno tiene dudas puede escribir tranquilamente su comentario por aquí

Collapse
 
samuel_leonardo_37aff38b4 profile image
Samuel Leonardo

Miren siguan compartiendo a los demás el post por favor.

Collapse
 
samuel_leonardo_37aff38b4 profile image
Samuel Leonardo

Listo siguan compartiendo

Collapse
 
samuel_leonardo_37aff38b4 profile image
Samuel Leonardo

MAWA sera conocido y revolucionara el bajo nivel estoy seguro

Collapse
 
samuel_leonardo_37aff38b4 profile image
Samuel Leonardo

Win Anti App Anchor mi Sistema Operativo pronto también tendra su propio post.