[Asm] Прочитать параметры
Допустим есть функция onLog на асм
onLog:Развернуть ↓из С++ юзаю так onLog("Test message");Вопрос в том как в асм прочитать строку "Test message"? |
Re: [Asm] Прочитать параметры
Что значит "прочитать"? Получить указатель?
|
Re: [Asm] Прочитать параметры
Цитата:
|
Re: [Asm] Прочитать параметры
Зависит от соглашения вызова. Если fastcall то указатель на строку будет в регистре ECX.
https://ru.wikipedia.org/wiki/%D0%A1...BE%D0%B2%D0%B5 |
Re: [Asm] Прочитать параметры
Цитата:
Делаю вот так вот, но в Msg пишет что то другое..явно не мою строку. Туда пишет какие то странные символы.. mov [OFFSET msg], ecx |
Re: [Asm] Прочитать параметры
Попробуйте указатель на указатель.
Ну или чтобы не гадать посомтрите под отладчиком. Может быть значение в стеке. |
Re: [Asm] Прочитать параметры
Вы пытаетесь вызвать "Printf" с нужным параметром я так понимаю. Код функции Printf покажите.
|
Re: [Asm] Прочитать параметры
Цитата:
extern "C" void __fastcall onLog(const char* Format); onLog("Test message"); .const Init dq 140019EA8h Printf dq 140009148h .data? msg db ? .code onLog proc mov [offset msg], rcx xor ecx, ecx call Init mov rcx, rax lea rdx, msg call Printf ret onLog endp endто выдает какие то левые странные символы..:( |
Re: [Asm] Прочитать параметры
Собсна пофиксил так
mov rax, [rcx] mov [offset msg], raxОднако теперь что то творится с размером слова.. onLog("Test\n");Если так писать то все окей, а если: onLog("Test text\n");то остается только Test tex :( есть у кого идеи как исправить? |
Re: [Asm] Прочитать параметры
Цитата:
https://github.com/Emeraude/MinilibC...ree/master/src к примеру Добавлено через 42 секунды Только буффер сразу сделайте достаточно большим |
Текущее время: 15:30. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot