Аналитический обзор книги "Программирование на языке ассемблера для микропроцессоров 8080 и 8085"

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

?ных в код BCD;

  • Преобразование данных в коде BCD в двоичные;
  • Преобразование двоичных данных в шестнадцатеричные в коде ASCII;
  • Преобразование шестнадцатеричных данных в коде ASCII в двоичные;
  • Преобразование двоичного числа в десятичное к коде ASCII;
  • Преобразование десятичного числа в коде ASCII в двоичное;
  • Трансляция строчных букв в прописные;
  • Преобразование кода символа из системы ASCII в систему EBCDIC;
  • Преобразование кода символа из системы EBCDIC в систему ASCII.
  •  

    1. Работа с массивами и индексирование
    2. Заполнение памяти;
    3. Пересылка блоков;
    4. Индексирование двухмерного массива байтов;
    5. Индексирование двухмерного массива слов;
    6. Индексирование N- мерного массива;

     

    1. Арифметические операции
    2. 16- разрядное вычитание;
    3. 16- разрядное умножение;
    4. 16- разрядное деление;
    5. 16- разрядное сравнение;
    6. Двоичное сложение с повышенной точностью;
    7. Двоичное вычитание с повышенной точностью;
    8. Двоичное умножение с повышенной точностью;
    9. Двоичное деление с повышенной точностью;
    10. Двоичное сравнение с повышенной точностью;
    11. Десятичное сложение с повышенной точностью;
    12. Десятичное вычитание с повышенной точностью;
    13. Десятичное умножение с повышенной точностью;
    14. Десятичное деление с повышенной точностью;
    15. Десятичное сравнение с повышенной точностью;

     

    1. Работа с разрядами и сдвиги
    2. Установка разряда;
    3. Очистка разряда;
    4. Проверка разряда;
    5. Выделение поля разрядов;
    6. Запись поля разрядов;
    7. Арифметический сдвиг вправо с повышенной точностью;
    8. Логический сдвиг влево с повышенной точностью;
    9. Логический сдвиг вправо с повышенной точностью;
    10. Циклический сдвиг вправо с повышенной точностью;
    11. Циклический сдвиг влево с повышенной точностью;

     

    1. Работа со строками
    2. Сравнение строк;
    3. Объединение строк;
    4. Поиск позиции подстроки;
    5. Копирование подстроки из строки;
    6. Удаление подстроки из строки;
    7. Вставка подстроки в строку;

     

    1. Операции с массивами
    2. Суммирование 8-разрядного массива;
    3. Суммирование 16-разрядного массива;
    4. Поиск минимального элемента длиной 1 байт;
    5. Поиск максимального элемента длиной 1 байт;
    6. Двоичный поиск;
    7. Быстрая сортировка;
    8. Тест ОЗУ;
    9. Таблица переходов;

     

    1. Ввод - вывод
    2. Чтение строки с терминала;
    3. Запись строки на устройство вывода;
    4. Проверка и генерация 16-разрядного кода контроля по избыточности;
    5. Диспетчер таблицы устройств ввода - вывода;
    6. Инициализация портов ввода - вывода;
    7. Задержка в миллисекундах;

     

    1. Прерывания
    2. Небуферизованный ввод - вывод о прерываниям с использованием программируемого интерфейса связи 8251;
    3. Небуферизованный ввод - вывод о прерываниям с использованием программируемого параллельного интерфейса 8255;
    4. Буферизованный ввод - вывод о прерываниям с использованием программируемого интерфейса связи 8251;
    5. Часы реального времени и календарь

     

    АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ

    1. Шестнадцатиразрядное вычитание

    Вычитаются два 16-разрядных числа. При этом флаг переноса действует как заем.

    Процедура. Просто из уменьшаемого вычитается вычитаемое по одному байту за один раз, начиная с младших байтов. При вычитании старших байтов учитывается заем. При вычитании старших байтов устанавливаются флаги.

    1. Шестнадцатиразрядное умножение

    Умножаются два 16-разрядных операнда и возвращается младшее по значению слово (16-разрядное) произведения.

    Процедура. Используется обычный механизм сложения и сдвигов, при котором множимое добавляется к частичному произведению каждый раз, когда в множителе находится единичный разряд. Для правильного относительного расположения операндов и произведения в программе 15 раз осуществляется сдвиг влево множителя и промежуточного произведения (т.е. на число разрядов в множителе минус один). При этом старший (16-й) разряд произведения теряется.

    1. Шестнадцатиразрядное деление

    Делятся два 16-разрядных операнда и возвращается частное и остаток. Имеются две входные точки: SDIV16 делит два 16-разрядных операнда со знаками, в то время как USDIV16 делит два 16-разрядных операнда без знаков. При делении на 0 флаг переноса устанавливается в 1, а частное и остаток равны 0; в противном случае флаг переноса очищается.

    Процедура. Если операнды имеют знаки, то определяется знак частного и берутся абсолютные значения отрицательных операндов. Кроме того, должен сохраняться знак делимого, так как он определяет знак остатка. Затем с помощью алгоритма сдвигов и вычитания выполняется беззнаковое деление. Частное и делимое сдвигаются влево, при этом каждый раз, когда пробное вычитание было успешным, единичный разряд помещается в частное. Если операнды имели знаки, то программа должна превратить в отрицательное число (т.е. вычесть из 0) частное или остаток, если только они должны быть отрицательными. При делении без ошибок флаг переноса очищается, а при делении на 0 - устанавливается. Кроме того, если делитель равен 0, то частное и остаток также равны 0.

    1. Шестнадцатиразрядное сравнение

    Сравниваются два 16-разрядных операнда и соответствующим обра