Где я могу найти документацию по ассемблеру? - PullRequest
1 голос
/ 20 мая 2010

Я написал очень короткую программу, которая анализирует «программу» с использованием python и преобразует ее в ассемблер, что позволяет мне скомпилировать мой маленький язык программирования в исполняемый файл.

Вы можете прочитать мой блог для получения дополнительной информации здесь http://spiceycurry.blogspot.com/2010/05/simple-compilable-programming-language.html

мой вопрос ... Где я могу найти больше команд ядра, чтобы я мог расширить свой сценарий в приведенном выше блоге?

1 Ответ

1 голос
/ 20 мая 2010

Я бы лучше рекомендовал использовать LLVM :

  • Это позволяет вам не беспокоиться о деталях низкого уровня, таких как распределение регистров (вы предоставляете только форму SSA)
  • Это делает оптимизацию для вас.Это может быть быстрее, чем рукописный и хорошо оптимизированный компилятор, как показывает конвейер LLVM в GHC (в начале - перед большой оптимизацией он имел такую ​​же или лучшую производительность, чем зрелый генератор собственного кода).
  • Itкроссплатформенный - вы не привязываетесь к примеру x86

Я не совсем уверен, что вы подразумеваете под командами 'kernel'.Если вы имеете в виду коды операций:

Однако ARM или PowerPC имеют совершенно разные коды операций.

Если вы имеете в виду системные системные вызовы системы (системазвонки) затем:

  • Вы можете просто использовать библиотеку C.Он есть в каждой операционной системе и является кроссплатформенным.
  • Вы можете напрямую использовать системные вызовы.Однако их сложнее использовать, они могут работать медленнее (libc может использовать дополнительную буферизацию) и не являются кроссплатформенными ( системные вызовы Linux на x86 - могут быть устаревшими). ​​
...