Hola
gracias por las repuestas a esta pregunta
Tengo el siguiente código de ensamblador nasm que no funciona
pero no se porque:
%include "io.inc"
%macro print 1
%%msg2 dw 12 ; esta la linea del error :(
push eax
push ecx
mov eax, %1
mov ecx, -1
while:
add ecx, 1
cmp byte [eax+ecx], 0
jmp PRINT_CHAR [eax+ecx]
jne while
pop ecx
pop eax
%endmacro
section .data
msg db "Hola", 13, 0
section .text
global CMAIN
CMAIN:
xor eax, eax
print msg
ret 0
Mi intención con esto es crear una variable en una macro para usarla en un bucle, esta en una macro que imprime caracteres para que sepa si funciona o no
pero no funciona
, si cambio el valor de 12 a 500 o 250, se traba el programa y no ejecuta
, tambien si uso algo como;
%%msg2 db "Hola mundo"
No funciona
Gracias por las respuestas
Edit:
Logre hacerlo funcionar con el siguiente codigo:
%macro print 1
section .data
msg2 db "Hola mundo";
section .text
push eax
push ecx
mov eax, %1
mov ecx, -1
while:
add ecx, 1
cmp byte [eax+ecx], 0
jmp PRINT_CHAR [eax+ecx]
jne while
pop ecx
pop eax
%endmacro