169 похожих чатов

Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на

консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написано, спустя некоторое время сама закрывается, несмотря на invoke getch и invoke ExitProcess,0 в конце метки.)

mov eax, 6
invoke printf, eax

Собственно, а в чём дело ?

25 ответов

48 просмотров

прочитайте параметры функции printf, и какое она имеет соглашение о вызовах

НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
Можно ссылку на ресурс ?

Просто... Я буквально день назад решил учить ассемблер и пока из моих источников информации пара страниц под строкой поиска гугла.

Alexey
Зачем , так тоже можно и я так делал

mov dword ptr esp, msg_2 mov dword ptr esp, msg_1 push frmt call ptr printf add esp,4*3я вообще так писал

Alexey
mov dword ptr esp, msg_2 mov ...

не, лучше так mov ebp,esp mov esp,p jmp printf q: mov esp,ebp ... p dd q,frmt,msg_1,msg_2

НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
Чёт ничего не поменялось

А обязательно регистр использовать, не пойдет метка там?

Alexey
А обязательно регистр использовать, не пойдет метк...

Я экспериментирую, пытаюсь понять, чё можно, а чё нет

The Bird of Hermes
Тут что-то странное творится

Он хотел скоротать push, проложив сразу формат стека с аргументами, но забыл, что у функции есть локальные переменные.

int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
точно, исправил

А теперь ты не скоротал push, а даже сделал намного хуже. Теперь код бесполезный.

int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
не, лучше так mov ebp,esp mov esp,p jmp printf q: ...

Ты хочешь при каждом вызове функции самому создавать ей ещё и кадр стека? Зачем? Не говоря уже о том, что не каждой функции он нужен

int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
зато производительность на высоте

В пределах Hello World - возможно, но никто не будет качать твой бинарник весом 2 гигабайта, потому что ты не умеешь узнавать размер локальных переменных внутри функции, и решил просто выделить под каждый такой формат статический стек по 66666... двойных слов.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта