DragonForce Опубликовано 27 июня, 2022 Поделиться Опубликовано 27 июня, 2022 Доброго времени суток. Такой вопрос, как изменить текст который хранится в регистре EDI. К примеру: push edi - edi:"TEST" call eax MessageBox выводит сообщение - "TEST". Как изменить текст который хранится в EDI перед вызовом call eax? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 28 июня, 2022 Поделиться Опубликовано 28 июня, 2022 Привет, в регистре EDI не может храниться текст. В нем может храниться только указатель на адрес памяти, где лежит текст. Соответственно, ты можешь записать свой текст в память, и в EDI записать адрес твоего текста. Ссылка на комментарий Поделиться на другие сайты Поделиться
DragonForce Опубликовано 28 июня, 2022 Автор Поделиться Опубликовано 28 июня, 2022 (изменено) 56 минут назад, Xipho сказал: записать свой текст в память, и в EDI записать адрес твоего текста. Нужно по идее выделить память через alloc, прописать туда байты нужно текста, а потом написать "mov edi, NameAllocMemory", но я не совсем знаю как правильно написать это в Auto Assembler`e, подскажите пожалуйста. Изменено 28 июня, 2022 пользователем DragonForce Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 28 июня, 2022 Поделиться Опубликовано 28 июня, 2022 31 минуту назад, DragonForce сказал: но я не совсем знаю как правильно написать Ну так вот так и написать. Выделить память через alloc, назначить метку, в эту метку прописать значение, как мы прописывали в куче уроков, только вместо числа будет что-то вроде db 'Text',0. А дальше либо mov edi, offset label, либо lea edi, [label] Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 28 июня, 2022 Поделиться Опубликовано 28 июня, 2022 4 часа назад, DragonForce сказал: Нужно по идее выделить память через alloc, прописать туда байты нужно текста, а потом написать "mov edi, NameAllocMemory", но я не совсем знаю как правильно написать это в Auto Assembler`e, подскажите пожалуйста. может поможет пример Спойлер Ссылка на комментарий Поделиться на другие сайты Поделиться
DragonForce Опубликовано 28 июня, 2022 Автор Поделиться Опубликовано 28 июня, 2022 (изменено) 2 часа назад, Garik66 сказал: может поможет пример Спасибо Вам всем. Такой вопрос, Вы создали метку example и прописали туда через db слово - Text. Но сама память для этого слова выделяется где-то в рандомном месте или хранится в выделенной памяти newmem? Просто я не вижу чтобы персонально для метки example выделялось память через alloc. Изменено 28 июня, 2022 пользователем DragonForce Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 28 июня, 2022 Поделиться Опубликовано 28 июня, 2022 1 час назад, DragonForce сказал: Спасибо Вам всем. Такой вопрос, Вы создали метку example и прописали туда через db слово - Text. Но сама память для этого слова выделяется где-то в рандомном месте или хранится в выделенной памяти newmem? Просто я не вижу чтобы персонально для метки example выделялось память через alloc. хранится в выделенной памяти newmem но так как я зарегистрировал метку (), то после активации скрипта я могу к example обращаться из любого скрипта. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения