Что вам нужно, так это ABI или двоичный интерфейс приложения для вашей платформы. Это объясняет такие вещи, как передача аргументов в функции (регистры, стек, микширование), какие регистры сохраняются вызывающими, а какие сохраняются вызываемыми, специальные цели для определенных регистров и т. Д. Следуя общему ABI, вы можете связывать библиотеки, созданные различными компиляторами, смешивать языки высокого уровня и т. Д.
Для «больших» платформ обычно легко найти документ с указанием ABI. Для других вам может потребоваться разобрать функцию C и посмотреть, что она делает. Обращайте внимание на то, какие регистры он сохраняет в своем прологе, а какие могут его разбить. Также обратите внимание, как пролог сохраняет указатель стека (или указатель фрейма) на входе, потому что вам придется имитировать это, если вы хотите, чтобы отладчики работали.
Похоже, что соглашение о вызовах для HCS08 задокументировано Freescale в приложении .