Соглашение о вызовах

Соглашение о вызове Обзор соглашений о вызовах Соглашения о вызовах определяют, как аргументы передаются и возвращаемые значения возвращаются между функциями.  […]

Соглашение о вызове

  • Обзор соглашений о вызовах

    • Соглашения о вызовах определяют, как аргументы передаются и возвращаемые значения возвращаются между функциями. 
    • Различные архитектуры имеют разные соглашения о вызовах, включая регистровые и стековые. 
  • Регистровые соглашения

    • Регистровые соглашения используют регистры для передачи аргументов и возвращаемых значений. 
    • MIPS использует регистры для передачи аргументов, а возвращаемое значение сохраняется в регистре $ra. 
    • SPARC использует окна регистров для передачи аргументов и имеет разные соглашения для разных типов регистров. 
  • Стек-ориентированные соглашения

    • Стек-ориентированные соглашения используют стек для передачи аргументов и возврата значений. 
    • System V ABI использует стек для передачи аргументов, а возвращаемое значение сохраняется в стеке. 
    • IBM System/360 использует стек для передачи аргументов и сохранения возвращаемого значения в регистре 15. 
  • Потоковый код и PL/I

    • Потоковый код передает все аргументы и возвращаемые значения через стек. 
    • PL/I передает аргументы по ссылке, но может использовать и другие соглашения. 
  • Другие соглашения

    • Существуют и другие соглашения о вызовах, такие как IBM 1130 и Motorola 68000, которые имеют свои особенности. 
  • Общие рекомендации

    • Соглашения о вызовах могут влиять на производительность и переносимость кода. 
    • Существуют руководства и рекомендации по использованию различных соглашений о вызовах. 

Полный текст статьи:

Соглашение о вызовах — Википедия

Оставьте комментарий

Прокрутить вверх