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

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 46

Тема: Проясните по поводу регистра флагов Z80

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Master
    Регистрация
    16.01.2005
    Сообщений
    615
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Проясните по поводу регистра флагов Z80

    Память моя дырявая, и мозги уже не те. Посмотрите, правильно я понимаю действие флагов, и поясните насчёт Half Carry, Parity/Overflow

    bit 7 - Sign - знак, копия bit 7 аккамулятора
    bit 6 - Zero - устанавливается, если A=0
    bit 5 - undoc - копия пятого бита аккамулятора
    bit 4 - Half Carry - полуперенос (?)
    bit 3 - undoc - копия третьего бита аккамулятора
    bit 2 - Parity/Overflow - устанавливается, если установлено чётное кол-во бит в аккамуляторе (?)
    bit 1 - Negative (Substract) - устанавливается, если последняя операция была вычитанием
    bit 0 - Carry - устанавливается, если результат операции превысил разрядность аккамулятора (если в результате операции изменился bit 7 аккамулятора)

    Half Carry - правильно-ли я понимаю, что он устанавливается, если в процессе операции изменился bit 3 аккамулятора? Зачем вообще используется этот флаг?

    Насчёт P/O что-то я совсем запутался, зачем и как он работает.

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

  3. #2
    Member Аватар для dwt
    Регистрация
    16.01.2005
    Адрес
    ЕнакиеВО!
    Сообщений
    129
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Arrow ...

    Не совсем верно...
    Бит 0 - флаг переноса C (устанавливается или сбрасывается в зависимости от результатов сравнения (означает больше/меньше);
    Бит 1 - флаг сложения/вычитания N (он редко используется);
    Бит 2 - флаг переполнения
    Бит 3 - не используется;
    Бит 4 - флаг полупереноса H (тоже редко используется);
    Бит 5 - не используется;
    Бит 6 - флаг "нуля" Z (установлен, если в результате сравнения - "совпадение"; или в результате какой-либо логической операции в аккумуляторе (р-р А) - 0);
    Бит 7 - флаг знака S (честно говоря, не помню для чего он).

  4. #3
    Master
    Регистрация
    16.01.2005
    Сообщений
    615
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну, 'редко используется' - это, конечно, хорошо (именно поэтому я и не знаю в деталях действие этих флагов, собственно), но в эмуляторе-же не напишешь - 'Извините, эта программа не пойдёт, потому-что флаг редко используется' Хотелось-бы более точной информации. Мне не очень понятна логика установки всех этих флагов после различных операций (особенно Half-Carry).

  5. #4
    Member Аватар для dwt
    Регистрация
    16.01.2005
    Адрес
    ЕнакиеВО!
    Сообщений
    129
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Arrow ...

    Ну извини, написал что знал... Попробуй поискать мануалы по Z80... Я сегодня еще дома в книжках посмотрю, может найду по-подробнее.

  6. #5
    Master
    Регистрация
    16.01.2005
    Сообщений
    615
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dwt
    Ну извини, написал что знал...
    Да это я понимаю, за это спасибо
    Цитата Сообщение от dwt
    Попробуй поискать мануалы по Z80...
    Их есть у меня. Но они довольно мутные, в некоторых на эту тему противоречия. Поэтому и спрашиваю - думаю, те, кто писал на ZX плотно, лучше знают, что и как. Я хоть и писал, но кроме C,Z флагов никогда другими не интересовался/пользовался, хватало как-то...

  7. #6
    Member Аватар для dwt
    Регистрация
    16.01.2005
    Адрес
    ЕнакиеВО!
    Сообщений
    129
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Arrow ...

    Цитата Сообщение от Shiru
    Я хоть и писал, но кроме C,Z флагов никогда другими не интересовался/пользовался, хватало как-то...
    Да я сам тоже использую в основном C, Z и как-то раз использовал PO/PE (переполнение). Но специфику использования последнего уже не помню (справочник память освежит ).

  8. #7
    Master
    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking

    Цитата Сообщение от Shiru
    Ну, 'редко используется' - это, конечно, хорошо (именно поэтому я и не знаю в деталях действие этих флагов, собственно), но в эмуляторе-же не напишешь - 'Извините, эта программа не пойдёт, потому-что флаг редко используется' Хотелось-бы более точной информации. Мне не очень понятна логика установки всех этих флагов после различных операций (особенно Half-Carry).
    Всё зависит от того, на сколько ты хочешь сделать эмулятор точной копией Z80 !!! Вообще-то у половины команд на Z80 нет точной логики в установке флагов ... Я, конечно, не имею в виду команды простых логических операций, хотя и там есть приколы ...

    У каждой комманды чуть-ли не трёхэтажная логика работы с битами ... Я предполагаю это сделано в качестве защиты от копирования процессоров, поскольку я не один раз убеждался что в аналогах Zilog'а просто по-другому работают многие биты не говоря уже о советских монстрах типа ВМ80 ...

    Я делал свой эмулятор и у меня есть ооооочень точное описание каждого бита флага на каждую команду ... Хотя мой эмулятор не доделан и там где-то есть глючёк, но за-то флаги он эмулирует очень точно ... Самая мощная команда это была INI, я пока выявил зависимость флагов от значений регистров чуть не умер, кроме всего на флаги влияют значение на входе порта ... А с помощью комманды LDI можно, например, XOR'ить ...

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

  9. #8
    Master
    Регистрация
    16.01.2005
    Сообщений
    615
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Robus
    Самая мощная команда это была INI, я пока выявил зависимость флагов от значений регистров чуть не умер, кроме всего на флаги влияют значение на входе порта ...
    Ты что, значения undefined бит выявлял что-ли? 8)

  10. #9
    Master Аватар для Ronin
    Регистрация
    28.03.2005
    Адрес
    Krasnodar, Russia
    Сообщений
    585
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shiru
    Вообще-то у половины команд на Z80 нет точной логики в установке флагов
    нееее, логика она всегда есть, на то он и процессор и потом там всего 8500 транзисторов, где там защиту от копирования процессора прятать. Фаджин хитрый мужик, он _просто_ _хорошо_ сделал z80, так что на протяжении четверти века его не изменяли, только в ЦМОС переложили, да всякие рюшечки привешивали.

    А полезная информация она завсегда полезна, особенно когда ей делятся

  11. #10
    Master
    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking

    Цитата Сообщение от Shiru
    Ты что, значения undefined бит выявлял что-ли? 8)
    Так точно, именно их !!! Я вообще всегда интересовался тем, о чём нигде не написано ... Я, конечно, не могу утверждать что у меня супер точно всё выявлено, возможно, кто-то и найдёт недочёт, но вроде методом "тыка", я таки выявил оочень много ...
    AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.

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

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

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

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

Похожие темы

  1. Ответов: 30
    Последнее: 25.02.2006, 17:35
  2. По поводу аттачей
    от Shadow Maker в разделе Форум
    Ответов: 11
    Последнее: 09.08.2005, 10:56
  3. По поводу скинов форума
    от CityAceE в разделе Форум
    Ответов: 1
    Последнее: 03.04.2005, 05:13

Ваши права

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