User Tag List

Страница 9 из 13 ПерваяПервая ... 5678910111213 ПоследняяПоследняя
Показано с 81 по 90 из 121

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

  1. #81

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,373
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Тут дело не во вкусе, а в необходимости. Вот представь себе: игра, в ней враги, их много, и у каждого свое состояние. Как писать код, обслуживающий врагов, без ООП (в явном или неявном виде)?
    Конечно, враги - это обьекты. Но я не люблю не работу с обьектами (структурами данных), а работу методами ООП. Когда идет наследование чего-то от кого-то, а ты видишь только верхушку айсберга при взаимодействии с обьектом. Любая абстракция от железа и, тем более, четкого понимания всех элементов массива данных, мне претит. Для ООП это нормально. Но мне такое программирование не интересно. Мне нравится программировать на низком уровне, с чувством железа, каждого байтика и битика. Там, где я все сделал сам, и понимаю в деталях, как, зачем и почему это работает. Тут для меня большое поле для творчества. Тут можно выжать из железа или алгоритма невозможное. А кому-то нравится ООП. Дело вкуса и склада мышления.

    ---------- Post added at 23:28 ---------- Previous post was at 23:25 ----------

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    LD A,(IX+n) занимает 3 байта и выполняется за 19 тактов, тогда как ее замена в общем случае (без ограничений на расположение структуры в памяти) требует двухбайтового сложения:

    LD BC,n ; 10 тактов
    ADD HL,BC ; 11 тактов
    LD A,(HL) ; 7 тактов

    Всего 5 байт и 28 тактов, места больше на 67%, по времени дольше на 47%, к тому же, требуются две хорошие регистровые пары (HL,BC), тогда как при использовании индексной адресации они свободны.
    Это если делать в лоб и универсально.
    А если:

    LD L,#nn ; 7 тактов
    LD A,(HL) ; 7 тактов

    То это гораздо быстре.
    Что? Нет универсальности? Любая универсальность раздувает код, замедляет скорость и заставляет лениться)

  2. #82

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    А если:

    LD L,#nn ; 7 тактов
    LD A,(HL) ; 7 тактов

    То это гораздо быстре.
    И чего? Мне теперь делать первый адрес каждого объекта с HL кратным 256?

  3. #83

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    А если:

    LD L,#nn ; 7 тактов
    LD A,(HL) ; 7 тактов

    То это гораздо быстре.
    быстрее, но применимо тока в демах, когда в большинстве случаев пофиг на память.

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    И чего? Мне теперь делать первый адрес каждого объекта с HL кратным 256?
    именно что.

  4. #84

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Andrew771, сколько у тебя будет обьектов?
    в Валкере Рома делал именно так
    С уважением,
    Jerri / Red Triangle.

  5. #85

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    Andrew771, сколько у тебя будет обьектов?
    в Валкере Рома делал именно так
    около 2000.

  6. #86

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Andrew771, тогда тебе нужно использовать индекс
    в валкере было около 200 обьектов
    и структуры формировались следующим образом
    L-номер обьекта
    H-различные поля обьекта
    С уважением,
    Jerri / Red Triangle.

  7. #87

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    Andrew771, тогда тебе нужно использовать индекс
    да, я так и делаю, очень удобно. Тем более, быстродействие в моей игре не так важно.

    Цитата Сообщение от jerri Посмотреть сообщение
    в валкере было около 200 обьектов
    и структуры формировались следующим образом
    L-номер обьекта
    H-различные поля обьекта
    О, а это классная идея! Возьму на вооружение на будущее.

  8. #88

    Регистрация
    16.09.2005
    Адрес
    Дзержинск (DustCity)
    Сообщений
    919
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну и нафлудили... тогда уж поспорьте о том что стек нужен исключительно для call и передачи параметров или что там оно еще в оригинале должно делать...

    Это ограниченное железо и любой команде (большинству из них можно найти применение). Ведь используют же стек для вывода графики или в качестве более выстрой альтернативе ldi

    И тут также... начав по теме вы ушли влево начиная обсуждать ООП и нужность индексной адресации. А забыли что IX и IY это два дополнительных 16-битных сумматора?
    Да и просто курим исходники tmap`а от alone codera и пробуем сделать быстрее и короче без использования ix,iy.
    Pentagon1024sl2.2/TSFM/Z-Controller/GS128Kb/HDD/CDROM/Palcoder

  9. #89

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

    По умолчанию

    Вообще разработка системы команд процессора - это очень тонкое дело. Например, меня всегда бесила система команд Microchip PIC16: мало команд, один регистр, переключение банков. По сравнению с этим так стройно и красиво смотрелась система команд Atmel AVR: много команд, много регистров, линейное адресное пространство. А на поверку, редко какой критичный кусок кода мне удавалось запрограммировать для AVR быстрее (по количеству машинных циклов), чем на PIC16. Обычно получалось даже наоборот. Вот такой вот парадокс. Красота архитектуры - еще не значит эффективность.

  10. #90

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    у эффективности критериев очень много разных.

Страница 9 из 13 ПерваяПервая ... 5678910111213 ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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