Непосредственная адресация используется в двух вариантах команд сложения и вычитания: обычном и быстром. Команды 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, которая также установлена на инструментальном компьютере. Сохраните изменения.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.