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

Я, кстати, считаю что это плохая идея, перегружать нулевой регистр

всякой фигнёй. Это просто запомнить, но это плохо для кода. ЛУчше бы было другие регистры использовать

ну хотя бы просто потому, что при вызове любых методов EAX == Self

то есть после вызова любой функции у тебя Self разрушен и его надо снова восстанавливать, перед каждым вызовом следующей функции. Не глупость ли получилась? 😃

11 ответов

16 просмотров

разве в дельфи селф передается в ЕАХ? Мне казалось что он передается как первый параметр в фастколл - не помню точно регистр, вроде ЕДХ. И да, я про довольно старые ыверсии аби, они могли с тех времен измениться

думаю, создатели конвенции знали, что делают

Arioch-The Автор вопроса
Vga
разве в дельфи селф передается в ЕАХ? Мне казалось...

если правильно помню номера регистров 8086, то это AX, CX,DX, BX так что первым как раз он родной ну или просто открой дебаггер 😊

Arioch The
если правильно помню номера регистров 8086, то это...

я помню что оно совместимо с обычной фастколл функцией, принимающей первым параметром self, и насколько я помню первый аргумент в фастколле кладется не в ЕАХ - но могу ошибаться

Arioch-The Автор вопроса
Vga
я помню что оно совместимо с обычной фастколл функ...

читай главу "register convention" https://docwiki.embarcadero.com/RADStudio/Athens/en/Program_Control_(Delphi)#Register_Convention

Arioch The
читай главу "register convention" https://docwiki....

Так первый аргумент передается через ЕАХ. ОК, в таком случае я мог спутать использование регистра, предназначенного для первого аргумента и регистра, предназначенного для результата - так как это один и тот же регистр

Arioch-The Автор вопроса
Igor
думаю, создатели конвенции знали, что делают

ой да, все кругом умные, только мы тут дураки и критиковать никого нельзя но вот позднее Майкрософт эту глупость исправило: https://learn.microsoft.com/en-us/cpp/build/x64-calling-convention?view=msvc-170

Arioch-The Автор вопроса
Vga
так и не понял где R8 и R9 у х86

тут дело принципа, не надо срать в один и тот же регистр, чтобы тут же тратить код и врем на его восстановление

Arioch The
тут дело принципа, не надо срать в один и тот же р...

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

Arioch-The Автор вопроса

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
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
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта