Cómo utilizar una cadena no declarada en NASM
Este es un programa simple en NASM para “Hola Mundo”.
section .text
global _start
_start:
mov edx, len
mov ecx, msg
mov ebx, 1
mov eax, 4
int 0x80
mov eax, 1
int 0x80
section .data
msg db '¡Hola, mundo!',0xa
len equ $ - msg
Pero, ¿puedo “mov” la cadena en “ebx” sin crear la sección “.data”?
Por ejemplo:
mov ecx, "Hola Mundo"
¿Es posible hacer esto?
Intenté algo como
wordvar dw 123
pero me da un error.
davy.ai
No, es posible mover una cadena a
ebx
sin crear una sección.data
u otra ubicación de memoria para almacenar la cadena. La instrucciónmov
requiere una dirección de memoria como operando, y un literal de cadena como"Hola Mundo"
no tiene una dirección de memoria en el archivo ejecutable hasta que se coloca en una sección o variable. La instruccióndw
se usa para definir una variable del tamaño de una palabra en una sección de datos, pero no se puede utilizar para almacenar una cadena.