User Tag List

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

Тема: Потактовый клон i8080 на FPGA/CPLD

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

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

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    DAA - десятичная коррекция после сложения.
    Входные параметры:
    A - аккумулятор
    AC - флаг переноса из младшего нибла в старший (из 3-его в 4-ый разряд)
    C - флаг переноса (перенос из 7-го разряда)
    Выполняет такие действия (R временная переменная):
    R = 0;
    if (((A & 0x0F) > 9) || AC) R |= 0x06;
    if (((A & 0xF0) > 0x90) || C) R |= 0x60;
    A = A + R;
    Установить все флаги согласно результата операции сложения.
    Возвращает:
    A, установленные флаги

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

  3. #2

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    A = A + R;
    Установить все флаги согласно результата операции сложения.
    Не совсем. Если был перенос, то он останется. А просто в результате сложения A + R переноса может и не быть:
    0x90+0x90=0x20 C=1
    0x20+0x60=0x80 C=0

  4. #3

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Не совсем. Если был перенос, то он останется. А просто в результате сложения A + R переноса может и не быть
    Да, верное замечание, флаги P, AC, Z, S ставятся как при обычном сложении A+R. Флаг C сохраняет свое значение, но устанавливается если добавлялся 0x60. Скорректированный алгоритм:
    R = 0;
    if (((A & 0x0F) > 9) || AC) R |= 0x06;
    if (((A & 0xF0) > 0x90) || C) {R |= 0x60; C=1;}
    A = A + R;
    установить флаги S, Z, AC, P согласно результата сложения.

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

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

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

Похожие темы

  1. Комманды ассемблера/коды i8080/КР580ВМ80А
    от sergey2b в разделе Разное
    Ответов: 4
    Последнее: 29.11.2015, 14:01
  2. МикроСтеплер. Компилятор ЯП СТЕПЛЕР для i8080
    от Kakos_nonos в разделе Программирование
    Ответов: 8
    Последнее: 31.05.2013, 16:34
  3. Эмулятор i8080
    от Higgins в разделе Разное
    Ответов: 2
    Последнее: 20.05.2011, 11:43
  4. Использование FPGA и CPLD (ПЛИС и ПЛМ)
    от Mick в разделе Для начинающих
    Ответов: 69
    Последнее: 03.05.2006, 11:47

Ваши права

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