Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: 16 bit signed arithmetic on Z80

  1. #1
    Master
    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    691
    Благодарностей: 408
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию 16 bit signed arithmetic on Z80

    not a short message
    Последний раз редактировалось Raydac; 28.05.2012 в 18:17.

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

  3. #2
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,497
    Благодарностей: 668
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вычитанием, ИМХО, sbc hl,bc
    Формально всё правильно, а по существу - издевательство (В.И.Ленин)

  4. #3
    Activist
    Регистрация
    17.05.2011
    Адрес
    Днепропетровск
    Сообщений
    414
    Благодарностей: 102
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Raydac Посмотреть сообщение
    я вот тоже так думаю, что sbc но как то у меня не проходят тесты сравнении (=<) когда одно число отрицательное, а другое положительное, странно, может у меня эмуль z80 кривой конечно
    http://ivr.webzone.ru/articles/dop_ar/

    Занятная статейка и о сравнении тоже
    ZXM-Phoenix v.03/2048/FDD/HD/YM-2149F/PS2-kbd; U8EP3C development board БК-0011М by Woland + SMK 512

  5. Эти 4 пользователя(ей) поблагодарили iceoflame за это полезное сообщение:
    GriV (26.01.2012), NovaStorm (26.01.2012), Raydac (26.01.2012), VNN_KCS (26.01.2012)

  6. #4
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,497
    Благодарностей: 668
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от iceoflame Посмотреть сообщение
    Занятная статейка и о сравнении тоже
    В демах имеет смысл, но в играх я бы не стал большинство методик оттуда применять - очень запутанный код и транжир памяти был бы.
    Формально всё правильно, а по существу - издевательство (В.И.Ленин)

  7. #5
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,938
    Благодарностей: 3437
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Raydac Посмотреть сообщение
    я вот тоже так думаю, что sbc но как то у меня не проходят тесты сравнении (=<) когда одно число отрицательное, а другое положительное, странно, может у меня эмуль z80 кривой конечно
    Надо выкладывать конкретный пример, где и как не сравнивает, и какие получаются флаги.

  8. #6
    Activist
    Регистрация
    17.05.2011
    Адрес
    Днепропетровск
    Сообщений
    414
    Благодарностей: 102
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Andrew771, Тут смотря, что важно: память или скорость. От этого и зависит оптимизация.
    ZXM-Phoenix v.03/2048/FDD/HD/YM-2149F/PS2-kbd; U8EP3C development board БК-0011М by Woland + SMK 512

  9. #7

  10. Эти 5 пользователя(ей) поблагодарили Protom за это полезное сообщение:
    GriV (26.01.2012), mastermind (26.01.2012), NovaStorm (27.01.2012), Raydac (26.01.2012), Vitamin (26.01.2012)

  11. #8
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,938
    Благодарностей: 3437
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Raydac Посмотреть сообщение
    вот никак не могу понять
    пытаюсь сравнить два 16 битных числа 1000 и 2000 и надо переход по 1000 < 2000
    делаю

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

  12. #9
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,938
    Благодарностей: 3437
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Raydac Посмотреть сообщение
    как видим флаг по маске #8000 будет именно 0, что и прописано во все просмотренных мною эмуляциях Z80 и JP PE работать разумеется не будет
    и вот непонятно, у кого ошибочка вышла, надо на реале наверное смотреть
    На сколько видно из алгоритма, флаг будет установлен если:
    a и b разных знаков, и a и результат тоже разных знаков.
    Следовательно, так как знаков может быть всего два, получаем установку флага при b и результате одного знака, а a - другого. Отсюда как минимум одна нестыковка - a и b - неравноценны! А как такое может быть?)

  13. #10
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    9,938
    Благодарностей: 3437
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Raydac Посмотреть сообщение
    посмотрел еще эмулятор i8080 написанный на Java каким то иностранцем, там так же оверфлоу в sbc hl формируется
    Как так? Пример строчки.

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Ваши права

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