Size: a a a

pro.osdev - os development

2021 August 19

IJ

Igor 🐱 Jirkov in pro.osdev - os development
В ассемблере, думаю, вообще не имкют смысла практически никакие оптимизации, т.к. сама суть языка в том, чтобы дать максимальную свободу в плане грязных хаков по типу генерации кода на ходу или прыжков на метки, подсчитанные динамически. Транслятор не может эти хаки идентифицировать (теорема Райса) поэтому оптимизаций, которые могут их сломать, делать не имеет права.

Ассемблер это прежде всего контроль, а остальное это побочные эффекты.
источник

BD

Berkus Decker in pro.osdev - os development
О, то есть я моложе но уже понимаю куда пригождается ассемблер, а вы старше и все еще не понимаете? Возможно когда вы учились программировать просто еще не было других языков кроме ассемблера, тогда я конечно сочувствую.
источник

BD

Berkus Decker in pro.osdev - os development
Да, мы про производительность.
источник

BD

Berkus Decker in pro.osdev - os development
fn never_returns() -> !
источник

W

Wild_Wind in pro.osdev - os development
Ну вот и я о том же.
источник

W

Wild_Wind in pro.osdev - os development
__attribute__((noreturn))
источник

IJ

Igor 🐱 Jirkov in pro.osdev - os development
Так-то и у сишников _Noreturn уже есть, стандартный
источник

DF

Dollar Føølish in pro.osdev - os development
Жесть
источник

W

Wild_Wind in pro.osdev - os development
О, норм. А с какого стандарта?
источник

DF

Dollar Føølish in pro.osdev - os development
17))
источник

W

Wild_Wind in pro.osdev - os development
Понятно :)
источник

DF

Dollar Føølish in pro.osdev - os development
Наверн
источник

W

Wild_Wind in pro.osdev - os development
А не, 11.
источник

DF

Dollar Føølish in pro.osdev - os development
Прошу прощения
источник

W

Wild_Wind in pro.osdev - os development
:)
источник

RG

R G in pro.osdev - os development
когда пишешь на асме не вставку, а проект на тысячи (или десятки тысяч) строк, все равно допускаешь лишние обращения к памяти, перекладывания регистров туда-сюда и тд. У человека не хватает ресурсов чтобы глобально оптимизировать такие объемы
источник

RG

R G in pro.osdev - os development
а вот по размеру бинарь на асме обычно получается меньше чем на си, даже если не стараться
источник

IJ

Igor 🐱 Jirkov in pro.osdev - os development
А у вас, кстати, есть в проекте препроцессорная магия для  оптимизаций, типа чтобы встраивать функции, например?
источник

RG

R G in pro.osdev - os development
такого вроде нет, но вообще в колибри используется куча макросов
источник

RG

R G in pro.osdev - os development
например

DEBUGF 1, "azazza var = %x\n", [eax + STR.pole1]

ну чем не принтф
источник