User Tag List

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

Тема: Неиспользуемые и редкоиспользуемые команды

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

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

    Регистрация
    25.04.2009
    Адрес
    Gomel, Belarus
    Сообщений
    32
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    Пример безусловно, когда ix накладно использовать. Некорректный. IX и IY используют, например, когда у нас есть некие наборы данных, которые мы упорядочиваем по смещениям. Достаточно установить на начало область индексный регистр - как мы получаем доступ к структуре. И можем моментально менять адреса разных структур. Иначе, придется заниматься вычислениями и сохрананениями восстановлениями. Индексы ведь не используют, когда надо обратиться к одной переменной. Смысла нет, так что пример некорректный.
    Замечу, что с передачей структур в функцию конкурирует другой метод. А именно - копирование необходимой информации в ту область памяти, на которую настроена функция.

    Цитата Сообщение от Vadim Посмотреть сообщение
    Например - файловый коммандер. У нас 2 панели. Так? Нужно хранить параметры для левой и правой панели, по сути одни и те же. Можно завести переменные, и работать с ними. 2 набора процедур или вычислять адреса переменных, а можно на переменные указывать индексным регистром и при вызове процедуры ставить в него нужное значение.
    В общем случае я согласен с этим примером. Могу добавить ещё один. Если мы делаем игру для двух игроков, поведение каждого из которых одинаково, то можем создать две области памяти, в каждой из которых одинаково хранится информация каждого из игроков. И впоследствии, если хотим обработать игрока X, то устанавливаем в нужное значение индексный регистр и запускаем.

    Для большинства же рабочих функций (которые влазят "на экран") если мы передаем более 4-х параметров (A, BC, DE, HL) с помощью структур (IX/IY или каким-то другим способом) является серьезным поводом задуматься о том, правильно ли мы разработали функцию.

    Кроме того замечу, что IX/IY - это "аналоги" глобального пространства имен в языках высшего уровня. Другими словами, если мы задействовали где-то IX, и где-то у нас есть другая процедура, использующая IX, то это переменное использование нужно контролировать, и в случае проблем это стоит долгих часов отладки.

    Цитата Сообщение от Vadim Посмотреть сообщение
    Ведь есть много случаев, когда компактность и понятность кода важнее скорости. Если мы не демках говорим. Пусть будет на 10-30 тактов дольше, но без сумасшедших сохранений, перемещений и восстановлений. Т.е. не надо путать время-критичный код от логики.
    С этим согласен.
    Только у меня речь идет о компактности и быстроте реализации, а не о понятных программах, которые занимают столько места и времени, сколько им позволяет пользователь.
    Последний раз редактировалось bsivko; 25.06.2012 в 11:27.

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

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

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

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

Похожие темы

  1. Основные команды Atari 65
    от Andrey_Ak в разделе Atari
    Ответов: 71
    Последнее: 06.03.2017, 18:27
  2. Недокументированные команды
    от MadCat! в разделе Программирование
    Ответов: 46
    Последнее: 02.02.2011, 13:49
  3. Команды Z80
    от e2e4 в разделе Для начинающих
    Ответов: 11
    Последнее: 02.07.2010, 21:13
  4. Команды Z80
    от Almaz в разделе Программирование
    Ответов: 1
    Последнее: 28.10.2007, 12:50

Ваши права

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