Определение: Вызывает подпрограмму с оператора, отстоящего от GOSUB на заданное число строк вверх или вниз по тексту программы или по указанной метке. При достижении в подпрограмме оператора {Stop}, управление передается следующему за GOSUB оператору.
Формы записи: {<параметр> GOSUB <переменная|метка>}
Параметр указывает число строк вниз до подпрограммы. Если параметр меньше нуля, то переход осуществляется вверх по тексту программы. При вызове программы режим контроля обработок сообщений переводится в состояние [S+].
При наличии метки в операторе производится ее поиск вниз по тексту программы (для перехода вверх {0GoSub метка}). Метка в тексте программы оформляется с первой позиции строки символом " . Метка может состоять не более чем из семи алфавитно - цифровых символов, причем метки набранные на различных регистрах считаются разными.
Переменные A..Н передаются и возвращаются в подпрограммы. Если этих переменных недостаточно, то необходимые данные можно передавать через стек, т.е. перед обращением записать их в стек оператором PUSH, а в подпрограмме считать оператором POP.
Переменные I..P являются локальными и их значение не передается в подпрограммы и не возвращается из них, другими словами их нельзя изменить, вызовом подпрограммы.
Пример:{2 GoSub} {оператор} {1 Gosub} {GoSub Процесс} {Stop} {Rem подпрограмма} {операторы}{Stop} "Процесс {операторы} {Stop}
© ООО "АТЛАС" г.Воронеж, 2007. Все права защищены. |