User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 46

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

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

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

    Регистрация
    14.03.2005
    Адрес
    Russia, Saint-Petersburg
    Сообщений
    213
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На самом деле логика везде есть... я сейчас готовлю электронную брошюрку, в которой описано все, что мне известно. Скоро выложу. Буду очень рад, если community дополнит ее

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

  3. #2

    Регистрация
    18.01.2005
    Адрес
    Ростов-на-Дону
    Сообщений
    577
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Насчет Carry и HalfCarry
    они устанавливаются при изменении 8(а не 7-го, те бита за пределами 8 битного регистра) и 4 битов (то есть когда происходит перенос или заем байта или полубайта)
    Для примера:
    0100'0100+0100'0100=1000'1000 => CF=0,HC=0, но P/O=1
    1000'0000+1000'0000=1'0000'0000 => CF=1,HC=0, P/O=1
    0000'0000-0000'0001=1'1111'1111 => CF=1, HC=1,P/O=1
    HC используется для коррекции после сложения и вычитания двоично-десятичных чисел

  4. #3

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

    По умолчанию

    Цитата Сообщение от Lion17
    Насчет Carry и HalfCarry
    Спасибо! Меня сбила с толку такая фраза из книжки (ZXASMDOC.ZIP, лежит на VT в books):
    Флаг переполнения: этот флаг будет установлен (=1), если содержимое бита 7 8-битового числа изменяется во время операции
    А насчёт bit 5 и bit 3, P/O - моя информация верна?

  5. #4

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

    По умолчанию

    Цитата Сообщение от Shiru
    А насчёт bit 5 и bit 3, P/O - моя информация верна
    ну да насколько я в курсе. но андок он и в африке андок...

    Цитата Сообщение от Shiru
    Их есть у меня.
    Цитата Сообщение от Shiru
    из книжки (ZXASMDOC.ZIP
    вообще-то под мануалом понимается обычно дока от Zilog.com

    итак, S,Z,C - самые популярные и пояснять не надо.
    N - последнее сложение(0)/вычитание(1), используется для DAA (BCD коррекция)
    H - заем/перенос в 4 бит, все верно, только к BCD прямого отношения не имеет. разве что для 4-битной арифметики коей BCD тоже является (перенос между разрядами)
    P/V (у Zilog именно так пишется) - это в принципе как бы два флага. ну т.е. один флаг который занимается двумя разными вещами (смотря какая операция), точнее даже четырьмя , сохраняя еще и статус триггера прерываний IFF при обращении к R, и в блочных операциях (ldi/ldir...) его напрягают.
    P - ну да, когда он P - то =1 при четном количестве едениц в аккумуляторе.
    V - арифметическое переполнение - это насколько я понимаю такая хрень которую придумали для работы в дополнительном двоичном коде (о, воспоем оду троичной симметричной системе ), ну т.е. когда ты к 0111111 (+127) прибавишь 1 получится 1000000 (-1) что есть переполнение (ну и с вычитанием таже фигня) - вот для его отслеживание и есть флаг V.

  6. #5

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

    По умолчанию

    Цитата Сообщение от Ronin
    вообще-то под мануалом понимается обычно дока от Zilog.com
    Есть и такое, конечно

  7. #6

    Регистрация
    13.03.2005
    Адрес
    Пермь
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Несколько дополнительных замечаний.
    Цитата Сообщение от Shiru
    bit 6 - Zero - устанавливается, если A=0
    Установка может быть связана не только с аккумулятором. INC\DEC любого регистра также устанавливает этот флаг. Однако, INC\DEC регистровой пары не работает с этим флагом (поэтому в стародавние времена регистры пары OR для этого).
    Цитата Сообщение от Shiru
    bit 4 - Half Carry - полуперенос (?)
    bit 2 - Parity/Overflow - устанавливается, если установлено чётное кол-во бит в аккамуляторе (?)
    bit 0 - Carry - устанавливается, если результат операции превысил разрядность аккамулятора (если в результате операции изменился bit 7 аккамулятора)
    Машинная арифметика - выполняется по модулю в кольце целых чисел. Диапазон беззнакового байта [0..255], знакового байта [-128..127]. Когда результат выходит за эти границы, это называется wraparound. И тогда
    bit 0 - Carry - Беззнаковый wraparound
    bit 2 - Parity/Overflow - знаковый wraparound
    bit 4 - Half Carry - wraparound младших 4 бит.

    Самое разнообразное применение имеет флаг Parity/Overflow
    -- в арифметических операциях (ADD\ADC\SUB\SBC\CP) - это знаковый wraparound
    -- в логических операциях (AND\OR\XOR..) - это чётность количества бит результата
    -- в блочных операциях без автоматического повторения (LDI и т. п.) - признак того, что BC обнулился (блок закончился)
    -- команды LD c аккумулятором и регистром I\R - копируют триггер прерываний во флаг P\O.

  8. #7

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

    По умолчанию Не все так просто

    где то была инфа что неиспользуемые биты копируются из регистра адреса (вроде PC). поэтому sts глючил так как выполняет команды из резидента, не оттуда где они находятся. короче авторы эмуляторов лучше всех должны это знать или Иван Рощин =)

  9. #8

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

    По умолчанию

    Цитата Сообщение от jtn
    где то была инфа что неиспользуемые биты копируются из регистра адреса (вроде PC).
    Я вот вычитал, что из регистра A. Либо из регистра операнда (опять расхождение).

  10. #9

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

    По умолчанию

    Цитата Сообщение от Shiru
    Я вот вычитал, что из регистра A. Либо из регистра операнда (опять расхождение).
    так и есть. загрузи STS и убедись лично.

  11. #10

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

    По умолчанию

    Цитата Сообщение от Ronin
    так и есть. загрузи STS и убедись лично
    У меня реала нет, а насчёт эмулей я не могу быть 100% уверен (автором эмулей просьба не обижаться, просто я параноик). Так - это как, только из A или из операнда?

Страница 2 из 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

Ваши права

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