Что означает «.dcall» в коде ассемблера? - PullRequest
1 голос
/ 05 июля 2019

Я пытаюсь понять программу в ассемблерном коде, которую нужно скомпилировать с помощью компилятора COSMIC для запуска на STM8 контроллере.

В начале программы есть пара xref и xdef, а затем идет оператор или команда .dcall. Вот оно:

.dcall "2,0,__checksum16"

Я искал руководство по компилятору, руководство по программированию контроллера и Интернет в целом, но не смог найти, что означает эта строка.

Может кто-нибудь объяснить, что это значит и что означают эти разделенные запятыми записи?

1 Ответ

3 голосов
/ 06 июля 2019

Это директива для ассемблера , обозначающая точку входа, имя символа и использование функции в стеке.

Согласно это :

[...] первое целое число - это пространство стека, используемое инструкцией вызова, плюс любое автоматическое хранение, используемое функцией. Второе целое число - это количество байтов, составленных вызывающей стороной.

Я полагаю, что, учитывая его имя и функцию, он вызывает вставку отладочной информации в объектный файл для использования символическим отладчиком ZAP. Я не знаком с цепочкой инструментов Cosmic, но, возможно, он также используется компоновщиком для анализа глубины стека в графе вызовов.

...