2012-07-02 4 views
0

Я использую компилятор NASM для создания небольших приложений asm. Мне нужно загрузить мою строку по месту, и я хочу получить ее позже. Мой вопрос: Есть ли способ сохранить строки в памяти и загрузить их позже? Где-то я ездил, что это возможно с offset, но я не знаю, как его использовать в NASM. Может ли кто-нибудь разместить здесь ссылки или код для объяснения или примера? Пожалуйста помоги.Переместить строки в местоположение

+0

Вы пишете asm для получения машинного кода. Процессор ничего не знает о строках. Сначала вам нужно определить, как выглядит строка, а затем написать код, чтобы манипулировать ими. Взгляните на то, как это делает компилятор C. –

+0

как я тод. Компилятор (VC) использует mov eax, смещение строки «string», но в NASM невозможно – user35443

ответ

2

В отличие от MASM и TASM, NASM не использует offset.

MASM/TASM код:

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

или

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

NASM эквиваленты:

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

или

lea eax, [MyString] 
MyString db "Hello World!", 10, 0 

Пожалуйста, прочитайте документацию NASM.

+0

Я был googling, и я искал его в документации NASM ... – user35443

+0

Раздел '2.2.2 NASM Требует квадратных скобок для ссылок на память' описывает разницу , –

Смежные вопросы