Обратил внимание, что в некоторых описаниях работа команды DAA описана уж очень сложным языком.
Тогда как в железной реализации она очень проста:
DAA:
Цикл M1:
T1-T2 - выборка кода команды и завершение предыдущей ALU-операции
T3 - стандартная загрузка A в ALUA и ALUB
T4 - если ALUA[3..0] > 9 или флаг H = 1, то ALUB[3..0] = 0x6
если ALUA > 99 или флаг C = 1, то ALUB[7..4] = 0x6, и флаг C результата равен 1
далле выполняем сложение ALUA и ALUB, если N = 0, и вычитание, если N = 1
Все остальные флаги устанавливаются как при обычном сложении/вычитании, за исключением того, что флаг P/V показывает признак четности
- - - Добавлено - - -
А вообше, скажу оффтопно - Vivado хоть и классная студия для моделирования, но после первого запуска симуляции начинает весь комп подтормаживать, хотя симуляция стоит на паузе.
Причем, закрываешь симуляцию или нет, уже не влияет. Приходится выйти из студии и снова войти.
Вот почему я люблю программирование и VisualStudio, а не симуляторы)




Ответить с цитированием