User Tag List

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

Тема: Программирование на ассемблере

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

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

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    А что ещё есть из трюков ?
    Ответ можно разбить на две части: собственно программные трюки под конкретный проц - раз; учет аппаратных особенностей компа - два.

    8080, конечно, не совсем Z80, но кое-какие мысли изложу, а что подойдет для Вектора - кодерам под 8080 виднее.
    Именно для компактности кода, а не скорости исполнения, забываем про развернутые циклы и подобные "бусты" на скорость.
    Начинаем с выравнивания кода и данных по "ровным" HEX-адресам, а также циклов (с некоторыми допущениями).
    Для циклов это избавит в части случаев от задания количества повторов цикла в регистре, либо сверки его с конкретным числом.
    Например, заполняем некую область данными, при этом на старте HL=#XX00, нам нужно забить 100/128/200 байт. Ниже коды Z80, но общий смысл, думаю, будет понятен.
    Можно организовать цикл на 100 (или сколько там) повторений, а можно просто увеличивать регистр L, пока он не обнулится. То бишь конструкцией вида INC L: JR NZ,repeat.
    Аналогично, проверяя аккумулятор через ротацию и зная, какое число в нем было изначально (для Z80 можно и любой регистр), можно сделать нужный счетчик.
    Например, нам нужен цикл с повторением 4 (либо с реакцией на каждый 4-й проход), при этом сам счетчик даже необязательно перезагружать.
    Для этого в аккумулятор грузим #88 (%10001000 бинарно), а в программе циклически сдвигаем (RRCA или как там у 8080 пишется) и делаем переход/нужное по флагу переноса.
    Флаг этот будет устанавливаться каждый четвертый проход, при этом "счетчик" будет самовосстанавливаться. Таким же путем делаются счетчики на 2 и 8, числами #AA и #80.

    Учитывая аппаратные особенности конкретного компа (строение экрана, например), можно тоже сокращать код. Особенно часто это делается на Спектруме с его хитрым экраном.
    Выше уже писали насчет палитр Вектора, вот как раз на эту тему.

    Этот пользователь поблагодарил reddie за это полезное сообщение:

    metamorpho(23.11.2021)

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

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

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

Похожие темы

  1. Вычисление числа Пи на ассемблере
    от perestoronin в разделе Разное
    Ответов: 330
    Последнее: 06.08.2025, 15:04
  2. Ответов: 275
    Последнее: 16.12.2018, 23:01
  3. try-catch на ассемблере z80
    от siril в разделе Программирование
    Ответов: 22
    Последнее: 30.10.2012, 21:17
  4. Продам книгу- AMIGA: программирование на ассемблере
    от Doctor Max в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 01.03.2012, 00:35
  5. Подпрограмма на ассемблере в памяти?
    от jimled в разделе Программирование
    Ответов: 1
    Последнее: 29.11.2009, 06:46

Ваши права

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