Pull to refresh

Comments 8

Все это здорово, конечно, только зачем на ассемблере писать то, что можно написать на C в 10 строк? Ничего специфичного для архитектуры там нет, а для ARM и PPC программу уже не собрать.
1. Понятно, что писать можно и нетрудно, непонятно только, зачем. Мне тоже приходится писать на ассемблере там, где PIC не завезли (пользуясь случаем, шлю разработчикам архитектуры amd64 охапку лучей добра за RIP-относительную адресацию), но вот так брать и писать на нем программу для UEFI Shell — больше похоже на фанатизм, дух старой школы и вот это все. :)
2. EBC пока не реализован ни на каких архитетурах, кроме i386, amd64 и Itanium, да и компилятор дают только за деньги, так что толку от него крайне немного.
3. Спасибо.
Извлечение EFI Byte Code из AMIBIOS:
Значительно проще и эффективнее будет найти EBC-интерпретатор среди модулей AMIBIOS, который соответствуют требованиям расширяемого интерфейса фирменного программного обеспечения. Таковым на сегодня является версия, которая называется Aptio.

Если по каким-то причинам возникнут затруднения с извлечением EBC-интерпретатора из бинарных файлов Aptio, исполняемый модуль виртуальной машины EFI Byte Code можно скачать здесь.
У меня есть доступ к исходному коду этого модуля, но картины это не меняет, т.к. интерпретатор EBC на данный момент собирается только под три вышеупомянутых архитектуры, и для ARM и PowerPC просто не реализован еще.
Да, с этим дело обстоит неважнецки. Проверить нереально.
  • Мы, например получили некоторую пользу от EBC, в частности UEFImark EBC Edition работает на x64 и IA32, что стало актуальным для устройств типа Intel Compute Stick. Платный компилятор не используем: для EBC инструкций сделаны собственные макросы под FASM.
  • RIP-относительная адресация под UEFI действительно грустная тема. Смиренно используем загрузку абсолютных 64-битных адресов в регистры, вместо инструкции LEA, несмотря на то, что второй вариант компактнее...

Обычно, у нас демо-версии служат заготовками для более сложных программ, таких как, например, бенчмарки чтения-записи оперативной памяти в многопотоковом режиме AVX256/512 инструкциями. А там уже без ассемблерной низкоуровневой оптимизации не обойтись, иначе пропускная способность памяти будет задействована не полностью, а ее измерение будет недостаточно точным.
Sign up to leave a comment.

Articles