Я бы скорее рекомендую с помощью LLVM:
- Это позволяет не беспокоиться о низкоуровневых деталях, таких как распределения регистров (вы предоставляете только SSA форму)
- Это делает оптимизацию для вас. Это может быть быстрее, чем рукописный и хорошо оптимизированный компилятор, поскольку показывает LLVM-конвейер в GHC (в начале - до того, как была достигнута оптимальная оптимизация, он имел равную или лучшую производительность, чем зрелый генератор собственных кодов).
- Это кросс-платформенный - вы не плотно себе, например x86
I'n не совсем уверен, что вы имеете в виду под «ядро» команды. Если вы имеете в виду опкоды:
- Есть Intel manuals
- Существует Wikipedia страница, содержащая все документированные memnonics (однако не в опкоды и не всегда описание)
- Там находится NASM manual
Однако ARM или PowerPC имеют совершенно разные коды операций.
Если вы имеете в виду операционной Systen системные вызовы (системные вызовы), то:
- Вы можете просто использовать библиотеку C. Он находится в каждой операционной системе и имеет кросс-платформу.
- Вы можете использовать непосредственно syscalls. Однако их труднее использовать, может быть медленнее (libc может использовать дополнительную буферизацию) и не являются перекрестной платформой (Linux syscalls on x86 - может быть не актуальной).