User Tag List

Показано с 1 по 10 из 23

Тема: try-catch на ассемблере z80

Древовидный режим

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

    Регистрация
    01.02.2005
    Адрес
    perm/ru
    Сообщений
    520
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    Не могу придумать, зачем в Z80 использовать эксепшены таким образом. Всегда проще тупо сделать call exception или jp exception, и там установить или стек или еще чего.
    ну, тут может быть из-за макросов запутанно выглядит, на самом деле-то всего ничего: сохранение регистров на альтернативном стеке.

    доп-стек даёт возможность вложенных try-catch'ей с проверкой в catch'е а умеем ли мы обрабатывать данный exception или нет. если нет, то raise exception этажом выше.

    и даёт возможность сделать кучу raise'ов, в заранее неизвестных местах.

    хотя, конечно, если мы знаем где raise exception, и если если он у нас один, то огород городить не нужно - достаточно прописать по нужным адресам значение sp и адрес catch:

    Код:
    ;try
             ld (raise_0+1),sp
             ld hl,catch_0
             ld (raise_0+4),hl
             call something
    ;endtry
             ld a,'A' ; plan "a"
             ret
    ;catch
    catch_0  ld a,'B' ; plan "b" =)
             ret
    
    something
             ;do something
    ;{raise exception
    raise     ld sp,#0000 ; will be modified by "try" - sp
              jp #0000 ; will be modified by "try" - catch_0
              
    ;}raise exception
    Что можно ещё придумать?
    Последний раз редактировалось siril; 24.10.2012 в 10:17.
    oisee.

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

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

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

Похожие темы

  1. Ответов: 32
    Последнее: 10.09.2024, 06:21
  2. Арифметические процедуры на ассемблере
    от spensor в разделе Программирование
    Ответов: 27
    Последнее: 13.05.2017, 20:56
  3. Пишем на ассемблере под эмулятором
    от GM BIT в разделе Для начинающих
    Ответов: 76
    Последнее: 15.07.2016, 20:04
  4. Ответов: 6
    Последнее: 07.02.2016, 11:55
  5. Подпрограмма на ассемблере в памяти?
    от jimled в разделе Программирование
    Ответов: 1
    Последнее: 29.11.2009, 06:46

Ваши права

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