Программирование на Ассемблере
Таким образом, команды ADDQ и
SUBQ занимают меньше памяти (на два байта), чем ADDI или SUBI. Как видно из таблицы, арифметические команды допускают не все способы
адресации операндов. Например, нельзя одной командой выполнить сложение
операндов в памяти (то есть запись ADD VAL1,VAL2 является недопустимой).
Существуют и другие ограничения:
- если - операнд приемника, то недопустима косвенная адресация через
программный счетчик (PC) (это относится ко всем командам MC680x0);
- операции с адресными регистрами не могут иметь размер .B, а в случае .W
операнды расширяются до .L с учетом знака (дополняются до 32 бит нулями
или единицами, в зависимости от знака операндов). Процессор MC680x0 также имеет ряд команд для работы с двоично-десятичными
(BCD) числами. BCD-число - это набор полубайтов, в каждом из которых
содержатся цифры от 0 до 9, а остальные значения (от A до F) просто не
используются. Например, десятичное число 2891 представляется как BCD-число %0010 + %1000 + %1001 + %0001 = %0010100010010001
2 8 9 1 Закодированные таким образом десятичные числа легко складывать и вычитать
на аппаратном уровне. MC680x0 поддерживает следующие операции над
BCD-числами: Мнемоника Действие
--------------------------------------------------------------------------
ABCD Dn,Dn сложение BCD-чисел с переносом (флаг X)
ABCD -(An),-(An) то же
NBCD изменение знака BCD-числа
SBCD Dn,Dn вычитание BCD-чисел с переносом (флаг X)
SBCD -(An),-(An) то же
PACK Dn,Dn,#n преобразование чисел из формата \'байт на цифру\' в
формат BCD (68020+)
PACK -(An),-(An),#n то же (68020+)
UNPK Dn,Dn,#n преобразование BCD-чисел в формат \'байт на цифру\'
(68020+)
UNPK -(An),-(An),#n то же (68020+) Обратите внимание, что для команд ABCD и SBCD допустимы только два метода
адресации: регистровая и предекремент
|