Изучение арифметических команд, команд условного ветвления и работа с ЖКИ-модулем учебного стенда на базе микроконтроллера Motorola MC68332, страница 5

            Непосредственная адресация используется в двух вариантах команд сложения и вычитания: обычном и быстром. Команды ADDI, SUBI реализуют обычный вариант, при котором непосредственный операнд Im может иметь до 32 двоичных разрядов. В командах ADDQ, SUBQ реализуется быстрый вариант непосредственной адресации, при котором короткий 3-разрядный операнд содержится в поле Rn первого слова команды. При этом диапазон значений операнда очень ограничен: от 1 до 7, однако существенно сокращается  длина команды и время ее выполнения.

            Команда NEG изменяет знак операнда путем его перевода в дополнительный код. Такая же операция с учетом признака X производится командой NEGX, которая используется для последовательного преобразования  операндов, состоящих из нескольких слов или двойных слов.

            Команды ABCD, SBCD выполняют сложение и вычитание 8-разрядных упакованных двоично - десятичных чисел, представляющих два десятичных разряда (числа от 0 до 99). При операциях учитывается признак X, что позволяет  производить обработку многоразрядных операндов путем последовательного выполнения данных операций. Команда NBCD изменяет знак операнда, формируя при X = 0 его дополнительный код (дополнение до10), а при X=1 - обратный код (дополнение до 9).

            Операции умножения и деления могут выполняться над числами со знаком (команды MULS, DIVS) или без знака (команды MULU, DIVU). Один из операндов всегда размещается в регистре данных Dn. Получаемый при умножении 16-разрядных операндов 32-разрядный  результат также располагается в регистре Dn. При делении 32-разрядное содержимое регистра Dn является делимым, в этом же регистре размещается результат: частное в 16 младших разрядах, остаток в 16 старших  разрядах.

            Команды MULU.L, MULS.L реализуют аналогичные операции с 32-разрядными  операндами. При этом умножаются 32-разрядные операнды без знака или со знаком,  имеющие  эффективный адрес EA и размещенные в регистре Dl. Результат, имеющий 64 разряда, размещается в регистре  Dl (при этом старшие 32 разряда теряются ) или в паре регистров Dh (старшие 32 разряда результата) и Dl (младшие 32 разряда результата). Соответствующие операции деления 32- и 64-разрядных операндов без знака и со знаком реализуются  командами DIVU.L, DIVS.L. Команды DIVU (DIVS).L <EA>, Dr выполняют деление 32-разрядного операнда из регистра Dq на 32-разрядный операнд, имеющий адрес EA, с размещением 32-разрядного частного в регистре Dq. Команды DIVU (DIVS).L <EA>, Dr:Dq используют 64-разрядное делимое из регистров Dr:Dq,  32-разрядный делитель, имеющий адрес EA, с  размещением  32-разрядного частного в регистре Dq и 32-разрядного остатка в регистре Dr. Аналогичную операцию выполняют команды DIVU (DIVS).L <EA>, Dr:Dq, в которых используется 32-разрядное делимое из регистра Dq.

            Команда очистки CLR устанавливает нулевое значение адресуемого байта, слова или двойного слова.

Порядок выполнения работы.

1. Ознакомиться с арифметическими командами, системой команд условного ветвления, функционированием блока индикации.

2. Изменить переменные в исходном коде лабораторной программы formula.a которая находится на рабочем столе в папке C:\DEBUG32\PRACTIKUM\FORMULA. Для редактирования можно воспользоваться 16-ричным редактором Ultra Edit 32, для этого необходимо сделать щелчок правой кнопкой мыши по необходимому файлу и в появившемся меню выбрать UltraEdit-32. Или можно воспользоваться встроенным редактором оболочки NC, которая также установлена на инструментальном компьютере. Сохраните изменения.