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

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

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

mov eax, 6
invoke printf, eax

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

25 ответов

26 просмотров

прочитайте параметры функции 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... двойных слов.

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
6
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
8
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Где можно найти примеры эффективного "асинхронного" tcp сервера на C? Я видел select, kqueue, poll, epoll и т.д. Ввод-вывод неблокирующий, но обработка клиентов блокирующая
#
10
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us 👉We offer Interview Support :-for a low cost variety of tech...
Rambabu Nallamilli
3
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Карта сайта