Наверное, просто потому, что это самый "главный" регистр, его сделали показателем номера сисфункции. Это дает ускорение в ядре, а насчет приложений - для размеров исполняемых файлов Menuet это мелочь.Johnny B wrote: Очень часто просто возникает желание его заюзать, т.к. по многим командам это даёт выигрыш, как по размеру(обычно команды с eax, в кач-ве параметра, на байт короче), так и по скорости(подозреваю).
Короче, приходится обходится другими регистрами.
Почему всё же eax?
-
Vivat assembler et KolibriOS!
Johnny B
Вообще особенности логики данного финского мужика (ему более 40 лет от роду) мы уже не раз обсуждали на форуме, IRC, асе и в письмах. Так что думаю, возвращаться к этой теме не имеет смысла. Система работает, и перекраивать ее на 100% не имеет практического смысла.
Теперь насчет использования EAX.
Возможно, ты знаешь, но я напишу - есть команды работы со стеком.
PUSH, POP и остальные разновидности. Я уже не говорю о прямой работе с ESP.
Если подпрограмма достаточно большая и критичная по времени, то сохранение регистра в стеке на входе процедуры и восстановление на выходе, очень даже неплохое решение проблемы.
А иногда это единственно возможное решение.
willow
Ускорение в ядре это никакого не дает. С таким же успехом можно использовать область данных с параметрами, естественно хоть один регистр при этом придется использовать, для указания на месторасположения области данных.
Однократное применение регистра без всякого цикла погоду не делает.
Вообще особенности логики данного финского мужика (ему более 40 лет от роду) мы уже не раз обсуждали на форуме, IRC, асе и в письмах. Так что думаю, возвращаться к этой теме не имеет смысла. Система работает, и перекраивать ее на 100% не имеет практического смысла.
Теперь насчет использования EAX.
Возможно, ты знаешь, но я напишу - есть команды работы со стеком.
PUSH, POP и остальные разновидности. Я уже не говорю о прямой работе с ESP.
Если подпрограмма достаточно большая и критичная по времени, то сохранение регистра в стеке на входе процедуры и восстановление на выходе, очень даже неплохое решение проблемы.
А иногда это единственно возможное решение.
willow
Ускорение в ядре это никакого не дает. С таким же успехом можно использовать область данных с параметрами, естественно хоть один регистр при этом придется использовать, для указания на месторасположения области данных.
Однократное применение регистра без всякого цикла погоду не делает.
На самом деле вызов fastcall не имеет смысла, все равно придется в большинстве случаяв сохранять в функции регистры через стек, на кой черт это делать если можно через стек передавать параметры? Прирост производительности можно проверить, он должен быть и мы можем его оценить!
2coremans Не придется ли вручную копировать стек? Вроде у нас нет теперь такого tss...
2coremans Не придется ли вручную копировать стек? Вроде у нас нет теперь такого tss...
Как насчет этой статьи http://www.wasm.ru/article.php?article=1010002 . Тут большой простор для оптимизации и сокращению размера кода. Кое-что использую и сам.
сейчас уже работает, лежал под принудительной перегрузкой.
"Преждевременная оптимизация корень всех зол"
"Преждевременная оптимизация корень всех зол"
Who is online
Users browsing this forum: No registered users and 8 guests