Чем отличаются инструкции JUMP и CALL? Как это относится к понятиям более высокого уровня, таким как GOTO или вызов процедуры? (Я прав в сравнении?)
Вот что я думаю:
JUMP или GOTO - это перенос элемента управления в другое место, и элемент управления не возвращается автоматически в точку, откуда он вызывается.
С другой стороны, вызов CALL или вызов процедуры / функции возвращается к точке, откуда он вызывается. Из-за этого различия в их природе языки обычно используют стек, а кадр стека выдвигается, чтобы «запомнить» место для возврата для каждой вызванной процедуры. Это поведение относится и к рекурсивным процедурам. В случае хвостовой рекурсии, однако, нет необходимости «проталкивать» кадр стека для каждого вызова.
Ваши ответы и комментарии будут высоко оценены.