User Tag List

Показано с 1 по 5 из 5

Тема: Как работает стек GO SUB?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я когда-то читал об этом в Полном дизассемблере от Яна Логана и Френка О-Хары - реализация операторов GO SUB и RETURN. Подробности уже забыл, но по-моему нижнюю (по адресам) границу стека GO SUB задает переменная ERR_SP (23613, 23614). После выполнения оператора GO SUB ее значение уменьшается на 3. В стек записывается номер строки, в которой находится оператор GO SUB, и номер оператора, следующего за ним. Если оператор GO SUB был первым в строке, то в качестве номера оператора возврата записывается двойка. Только что написал простейшую программу на бейсике для проверки - так и есть.

    Поскольку ERR_SP задает верхнюю границу машинного стека, и по адресу, лежащему по ERR_SP, осуществляется возврат при ошибке (2 байта) - то стек GO SUB начинается на 2 байта выше, чем значение ERR_SP.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Не работает PS/2 Mouse
    от Mifody в разделе Устройства ввода
    Ответов: 139
    Последнее: 29.10.2025, 19:56
  2. emu1541 не работает
    от e2e4 в разделе Commodore 16/64/128
    Ответов: 26
    Последнее: 05.11.2016, 16:09
  3. spec 256 - не работает под ХР
    от STAB в разделе Эмуляторы
    Ответов: 4
    Последнее: 31.07.2013, 00:14
  4. Не работает ТР-ДОС! Почему?
    от Slider в разделе Внешние накопители
    Ответов: 13
    Последнее: 03.04.2009, 23:03
  5. Не работает КР1858ВМ3
    от Mifody в разделе Для начинающих
    Ответов: 30
    Последнее: 29.03.2009, 12:12

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •