Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Команды подпрограммы






    Подпрограммы как средство модульного программирования

    В большинстве прикладных программ некоторые последовательности ко-манд встречаются не один раз, но оперируют разными данными.Такие после-довательности можно оформить в макрокоманды.Однако расширения мак-рокоманд целиком включаются в объектную программу и значительно уве-личивают ее длину.Гораздо удобнее включить повторяющуюся последова-тельность в объектную программу всего один раз, а в нужных точках вызы-вать ее для выполнения с текущими данными.Такая вызываемая последова-тельность команд, или своеобразная «программа в программе» называется подпрограммой или процедурой.

    Подпрограмма представляет собой законченный модуль, который может вы-зываться любое число раз.Инициирование выполнения подпрограммы осущест-вляется путем указания ее имени в 3-байтной команде вызова CALL.Имя под-программы должно находиться в поле метки первой ее команды.При выполне-нии команды CALL текущее содержимое РС(адрес возврата) загружается в стек, а в РС загружается адрес перехода—второй и третий байт команды CALL. После этого начинает выполняться первая команда подпрограммы, затем вторая и т.д.Заключительной командой каждой подпрограммы должна быть 1-байтная команда возврата RET, которая извлекает адрес возврата из стека и передает его в РС.Следовательно, теперь будет выполняться команда, находящаяся в вызываю-щей программе сразу после команды CALL.

    Практика программирования показывает, что целесообразно всегда запоми-нать содержимое регистров в начале и восстанавливать его в конце подпрог-рамм.Если, например, подпрограмма SUBR использует регистры А, В и С, она должна иметь следующий формат:

     

    Метка Код Операнд Комментарий

     

    SUBR: PUSH PSW; Запоминание содержимого регист-

    PUSH B; ров в стеке

    ***

    Команды подпрограммы

    ***

    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

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.