Перейти к содержанию

Запись текста в регистра EDI


Рекомендуемые сообщения

Доброго времени суток.

Такой вопрос, как изменить текст который хранится в регистре EDI.

 

К примеру: 

push edi - edi:"TEST"

call eax

MessageBox выводит сообщение - "TEST".

 

Как изменить текст который хранится в EDI перед вызовом call eax?

Ссылка на комментарий
Поделиться на другие сайты

Привет, в регистре EDI не может храниться текст. В нем может храниться только указатель на адрес памяти, где лежит текст. Соответственно, ты можешь записать свой текст в память, и в EDI записать адрес твоего текста.

Ссылка на комментарий
Поделиться на другие сайты

  

56 минут назад, Xipho сказал:

записать свой текст в память, и в EDI записать адрес твоего текста.

Нужно по идее выделить память через alloc, прописать туда байты нужно текста, а потом написать "mov edi, NameAllocMemory", но я не совсем знаю как правильно написать это в Auto Assembler`e, подскажите пожалуйста.

Изменено пользователем DragonForce
Ссылка на комментарий
Поделиться на другие сайты

31 минуту назад, DragonForce сказал:

но я не совсем знаю как правильно написать

Ну так вот так и написать. Выделить память через alloc, назначить метку, в эту метку прописать значение, как мы прописывали в куче уроков, только вместо числа будет что-то вроде db 'Text',0. А дальше либо mov edi, offset label, либо lea edi, [label]

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, DragonForce сказал:

  

Нужно по идее выделить память через alloc, прописать туда байты нужно текста, а потом написать "mov edi, NameAllocMemory", но я не совсем знаю как правильно написать это в Auto Assembler`e, подскажите пожалуйста.

может поможет пример

Спойлер

image.thumb.png.af2eecf96de64b5aa96b7f3090a834cf.png

 

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Garik66 сказал:

может поможет пример

Спасибо Вам всем. Такой вопрос, Вы создали метку example и прописали туда через db слово - Text. Но сама память для этого слова выделяется где-то в рандомном месте или хранится в выделенной памяти newmem? Просто я не вижу чтобы персонально для метки example выделялось память через alloc.

Изменено пользователем DragonForce
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, DragonForce сказал:

Спасибо Вам всем. Такой вопрос, Вы создали метку example и прописали туда через db слово - Text. Но сама память для этого слова выделяется где-то в рандомном месте или хранится в выделенной памяти newmem? Просто я не вижу чтобы персонально для метки example выделялось память через alloc.

хранится в выделенной памяти newmem
но так как я зарегистрировал метку (image.png.3dbd3d75226f5173130a110718582222.png), то после активации скрипта я могу к example обращаться из любого скрипта.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.