![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Команды подпрограммыСтр 1 из 2Следующая ⇒
Подпрограммы как средство модульного программирования В большинстве прикладных программ некоторые последовательности ко-манд встречаются не один раз, но оперируют разными данными.Такие после-довательности можно оформить в макрокоманды.Однако расширения мак-рокоманд целиком включаются в объектную программу и значительно уве-личивают ее длину.Гораздо удобнее включить повторяющуюся последова-тельность в объектную программу всего один раз, а в нужных точках вызы-вать ее для выполнения с текущими данными.Такая вызываемая последова-тельность команд, или своеобразная «программа в программе» называется подпрограммой или процедурой. Подпрограмма представляет собой законченный модуль, который может вы-зываться любое число раз.Инициирование выполнения подпрограммы осущест-вляется путем указания ее имени в 3-байтной команде вызова CALL.Имя под-программы должно находиться в поле метки первой ее команды.При выполне-нии команды CALL текущее содержимое РС(адрес возврата) загружается в стек, а в РС загружается адрес перехода—второй и третий байт команды CALL. После этого начинает выполняться первая команда подпрограммы, затем вторая и т.д.Заключительной командой каждой подпрограммы должна быть 1-байтная команда возврата RET, которая извлекает адрес возврата из стека и передает его в РС.Следовательно, теперь будет выполняться команда, находящаяся в вызываю-щей программе сразу после команды CALL. Практика программирования показывает, что целесообразно всегда запоми-нать содержимое регистров в начале и восстанавливать его в конце подпрог-рамм.Если, например, подпрограмма SUBR использует регистры А, В и С, она должна иметь следующий формат:
Метка Код Операнд Комментарий
SUBR: PUSH PSW; Запоминание содержимого регист- PUSH B; ров в стеке *** Команды подпрограммы Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение *** POP B; Восстановление прежнего содержи- POP PSW; мого регистров RET; Возврат
Подпрограммы с таким форматом быстрее и проще отлаживать.Из-за специфики стека содержимое регистров восстанавливается в обратном порядке. Примечание. В большинстве приводимых далее подпрограмм команды PUSH в начале и команды POP в конце подпрограммы не приводятся, так как они удлиняют листинги, но дают мало новой информации. При наличии команд PUSH и POP такие подпрограммы должны быть несколько модифицированы. Пусть, например, заключительный фрагмент подпрограммы имеет следующий вид:
Метка Код Операнд Комментарий *** INR A RZ INX B RET
Когда в подпрограмме требуется временное запоминание и восстановление содержимого регистров, этот фрагмент несколько изменяется:
Метка Код Операнд Комментарий SUBR: PUSH PSW PUSH H *** INR A JZ NOT INX B
NOT: POP H POP PSW RET
|