Assembly 将字符串移动到位置

Assembly 将字符串移动到位置,assembly,x86,nasm,Assembly,X86,Nasm,我正在使用NASM编译器创建小型asm应用程序。我需要在位置上加载我的字符串,我想稍后访问它。 我的问题是: 有没有办法将字符串存储在内存中并在以后加载? 在我骑过的某个地方,可以使用offset,但我不知道如何在NASM中使用它。 任何人都可以在这里放置链接或代码进行解释或示例吗?请帮助。与MASM和TASM不同,NASM不使用偏移量 MASM/TASM代码: mov eax, offset MyString MyString db "Hello World!", 10, 0 或 NASM等

我正在使用NASM编译器创建小型asm应用程序。我需要在位置上加载我的字符串,我想稍后访问它。 我的问题是: 有没有办法将字符串存储在内存中并在以后加载? 在我骑过的某个地方,可以使用
offset
,但我不知道如何在NASM中使用它。
任何人都可以在这里放置链接或代码进行解释或示例吗?请帮助。

与MASM和TASM不同,NASM不使用
偏移量

MASM/TASM代码:

mov eax, offset MyString
MyString db "Hello World!", 10, 0

NASM等价物:

mov eax, MyString
MyString db "Hello World!", 10, 0


请阅读NASM文档。

与MASM和TASM不同,NASM不使用偏移量

MASM/TASM代码:

mov eax, offset MyString
MyString db "Hello World!", 10, 0

NASM等价物:

mov eax, MyString
MyString db "Hello World!", 10, 0


请阅读NASM文档。

您编写asm是为了生成机器代码。处理器对字符串一无所知。您首先必须定义字符串的外观,然后编写代码来操作它们。好好看看C编译器是如何做到这一点的。编译器(VC)正在使用mov eax,偏移字符串“string”,但在NASM中,您不可能编写asm来生成机器代码。处理器对字符串一无所知。您首先必须定义字符串的外观,然后编写代码来操作它们。好好看看C编译器是如何做到这一点的。编译器(VC)正在使用mov eax,偏移字符串“string”但在NASM中是不可能的。
2.2.2 NASM部分要求内存引用方括号
描述了差异。
2.2.2 NASM部分要求内存引用方括号
描述了差异。