gracias por las repuestas a esta pregunta 
Tengo el siguiente código de ensamblador nasm que no funciona
pero no se porque:Código
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
%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
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;Código
No funciona
%%msg2 db "Hola mundo"
Gracias por las respuestas
Edit:
Logre hacerlo funcionar con el siguiente codigo:
Código
%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





Autor


En línea




