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

Что значит "чище"? Чистый ассемблер - это то, что objdump'ом

получено

34 ответов

45 просмотров

а может тогда это, дан код из дебаггера и написать ответ значение в регистре или памяти

Alex- Автор вопроса
Mixail Frolov
а может тогда это, дан код из дебаггера и написать...

Лучше уж сразу бинарь давать! Разумеется, не под интел

Это ты про язык ассемблера, наверное. Чистый ассемблер это то, что мнемонику в опкод гоняет. И эта грань расплывается, когда в программу, которая гоняет мнемоники, добавляются всякие директивы. Например, прежде всего, нужна директива или функция для генерации структуры исполняемого файла — PE, ELF и т.д. Это уже не относится к "чистому ассемблеру", и процент этой "чистоты" падает. Вот я и говорю, что FASM позволяет писать именно на чистом ассемблере.

Ну чистота конечно хорошо, но макросы - дело крайне полезное, важное и экономное

The Bird of Hermes
Ну чистота конечно хорошо, но макросы - дело крайн...

Да я и не спорю) для больших проектов самое то. Но для души иногда хочется и чисто без макросов писать. Хотя и большие проекты без макросов тоже писать можно, та же Kolibri OS.

КТ315
Да я и не спорю) для больших проектов самое то. Но...

Никогда не возникало такого желания. Напротив, большое желание нахреначить макросов и потом не возиться в шаблонных ситуациях

The Bird of Hermes
Никогда не возникало такого желания. Напротив, бол...

Например, по переводу числовых значений года, месяца, дня, часа, минуты и секунды в Юникстайм на этапе компиляции

КТ315
Да я и не спорю) для больших проектов самое то. Но...

таки нельзя, уже одного Вилли, который офсетами и магическими числами адреса записывал, хватило, до сих пор разгребаем

The Bird of Hermes
Например, по переводу числовых значений года, меся...

Так в данном случае без макроса и не получится ничего. Тут его обязательно использовать.

КТ315
Так в данном случае без макроса и не получится нич...

Получится. Если перекинуть вычисления на рантайм

КТ315
Не, это не ответ. Нельзя так делать.

Ну в ЯВУ всё конструкторы классов в рантайме

The Bird of Hermes
Ну в ЯВУ всё конструкторы классов в рантайме

С++ (g++, например) на O3 может класс вообще выкинуть и весь код в main запихать.

КТ315
С++ (g++, например) на O3 может класс вообще выкин...

Ну это в порядке оптимизации, конечно

КТ315
С++ (g++, например) на O3 может класс вообще выкин...

Но всё равно это будет код в рантайме, на макросы он его не переведёт

The Bird of Hermes
Но всё равно это будет код в рантайме, на макросы ...

g++? Тут уже смотря что подразумевается под рантаймом. Можно сказать, компилятор это и есть макрос, который там вычисляет константы и переводит. Например, atoi('0') он может убрать, и поставить там константу 0x30, чем не макрос?

КТ315
g++? Тут уже смотря что подразумевается под рантай...

А если я определю класс, принимающий в качестве аргументов конструктору 3 значения и выдающий в единственное поле их произведение, а потом инициализирую 3 непосредственными значениями

The Bird of Hermes
А если я определю класс, принимающий в качестве ар...

Скорее всего, заоптимизирует это всё в одну константу, если вообще весь код не посчитает как бесполезный, и удалит)))

invoke это макрос или директива асма?

Alex- Автор вопроса
Aiwan \ (•◡•) / _bot
invoke это макрос или директива асма?

Что б я знал. Конкретный пример можете показать?

Alex- Автор вопроса
Aiwan \ (•◡•) / _bot
invoke myfunc

Это в фасме, или где?

Alex- Автор вопроса
Aiwan \ (•◡•) / _bot
invoke myfunc

Пишут макрос: The invoke macro does the same, however it calls the procedure indirectly, through the pointer labelled by the first argument.

Alex- Автор вопроса
КТ315
Ну, конечно.

Для меня это вообще не очевидно. У меня другой контекст инвока

Alex
Это в фасме, или где?

эт для проверки понятия 'чистоты' асма. твое предположение?

Alex- Автор вопроса
Aiwan \ (•◡•) / _bot
эт для проверки понятия 'чистоты' асма. твое предп...

Предположение, что споры о чистоте расы асма довольно бессмысленны.

Aiwan \ (•◡•) / _bot
invoke это макрос или директива асма?

Наверное, суть была в том, у FASMа всё, что не относится к мнемоникам (и даже format !!!!) это макросы внешние, поставляемые с .inc файлами. Так что FASM из коробки практически ничего и не может, кроме как мнемоники гонять в опкоды — чистый ассемблер. А вот в MASM сразу с ходу PROC это директива вшитая в сам MASM, и в других популярных ассемблерах так же.

Alex
Предположение, что споры о чистоте расы асма довол...

Когда пишется какой-то PIC-код, ты начинаешь ценить чистоту того или иного ассемблера. FASM для написания шеллкодов, патчей как раз отлично подойдёт. Ну, и опять же, для других целей тоже вполне можно использовать))

Alex- Автор вопроса
КТ315
Когда пишется какой-то PIC-код, ты начинаешь ценит...

Я рад, что в вашей практике он так удачно применяется! В моей практике существует только гнушный ассемблер (и некоторая экзотика по типу план9 ассемблера или e2k)

Alex
Я рад, что в вашей практике он так удачно применяе...

а где о e2k можно почитать(ну там опкоды, команды) без nda ?

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта