а кто их писал? вот то-то…вот к примеру появилось у меня как-то желание мир осчастливить, написать “Эта таинственная Кундалини”, а потом одумался, если не знает кто-то ему и не нужно знать, а кто знает то и так не нужно…
Вывод: “собрать все книги…да и сжечь”! )))
Я больше скажу. На языке следующего поколения - на Rust, тоже сохранена возможность ассемблерных вставок.
Цель этого проста. Любой язык, предназначенный (в числе прочего) для системного программирования (в настоящее время их два с половиной главных: С, С++ и Rust) должен иметь возможность точного управления периферией. Исключительно для быстроты внедрения новых аппаратных возможностей. Именно как прослойку между абстракциями языка и НОВЫМ железом. Внедряя хитрый таймер (к примеру), не обязательно переделывать компилятор целиком или писать модуль на голом ассемблере, а достаточно уточнить обращения к регистрам настройки, написав остальное на читаемом языке.
Такой подход сохраняет относительно удобное сопровождение кода, не препятствуя внедрению нового железа.
Накину по наводке детсимена на ассемблерную колибриос на затихающий вентилятор:
Второй большой работой, все ещё незавершённой, было преодоление наследства «тяжелого финского прошлого». Во-первых, в коде Менует не использовались символьные имена переменных. В ранних ревизиях Колибри приходилось продираться через
mov edi, [0x3004]; the last process (number)
movzx esi, word [0xC400 + edi * 2]
shl esi, 5
add esi, window_data
Во-вторых, «маленькое ассемблерное ядро» жрало память в совершенно диких количествах. Для байтовой переменной было типичным выделение килобайта, для буфера десятков килобайт — адреса абсолютные, поэтому выравнивали на красивые круглые значения. Всё это было от бедности. Если ядро не умеет динамически выделять память, остаётся резервировать статически и с запасом.
…
Важна ли совместимость c аппаратными платформами или другими ОС для KolibriOS?
Колибри ассемблерная система для x86. Вряд ли есть смысл говорить о других аппаратных платформах.
Для меня знать куда сейчас смотрит указатель стека - задача ни о чём !!!
Вы видимо не поняли что я тут на форуме один из не многих, кто иногда пишет на ASM !
Как раз понял, поэтому и хочу вместе показать глупость сишного компилятора относительно проггера, который знает что ему нужно, и о чем не может догадываться компилятор.
Не понял пока только какой ассемблер он имеет ввиду- православный или встроенный в GCC.
Что не одно и то же.
Абащщи, щас он начнёт заставлять проверять быстродействия с наносекундомером, а то инструкции отличаются буквочками. Или устроит “симулятор - это не то, давай плату на КР800 паяй, докажи проигрыш” . Или за какой он там проц премии получал, что так прикипел.
Тактика ж простая, это видно - нихера самому не делать, только нудить и обгаживать чужие результаты. Вампиризм 100%.
Грех дедушку обманывать. Боженька накажет. В ардуиновском компиляторе временные регистры
R24-R25 а у тебя пара 30-31. В том то и дело, что если мне нужно полистать стэк, вершину стека мне нужно записать в пару индекстных регистов, чтобы потом использовать команды
LD Rxx,X-1 Х-2 и т.д. Ты похоже сообразил, где лажанулся, решил схитрить. Чем компилировал?