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