Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PIC_Lektsii.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.01 Mб
Скачать

Команды вычитания

Все команды вычитания выполняются в дополнительном коде. Вычитание реализуется путем инвертирования значений всех разрядов вычитаемого, добавления к ним 1 и сложения полученного числа с уменьшаемым. Единица в старшем разряде является признаком отрицательного числа, а ноль – признаком положительного числа. Восьми разрядный код дает возможность представлять числа в диапазоне от +127 до –127, включая 0.

Все рассмотренные ниже команды вычитают данные, на которые имеется указание в команде, из данных, находящихся в аккумуляторе. Другими словами, в аккумуляторе всегда размещается уменьшаемое.

Команды вычитания без переноса

а) Вычитание с регистром

SUB r (A)-(r)A

ПАМЯТЬ

SUB r

Содержимое регистра вычитается из содержимого аккомулятора (регистра А). Результат помещается в аккумулятор, исходное содержимое аккумулятора при этом теряется. Команда 1-байтовая, выполняется за 1 машинный цикл.

б) Вычитание с памятью

SUB М (A)-(М)A

ПАМЯТЬ

SUB М

По этой команде содержимое ячейки памяти, адрес которой находится в регистровой паре H,L, вычитается из содержимого аккумулятора (регистр А). Результат помещается в аккумулятор. Команда 1-байтовая, выполняется за 2 машинных цикла.

в) Вычитание с непосредственными данными

SUI данные (A)-<данные>A

ПАМЯТЬ

SUI

Данные

По команде ВЫЧИТАНИЕ С НЕПОСРЕДСТВЕННЫМИ ДАННЫМИ содержимое второго байта команды вычитается из содержимого аккумулятора. Результат помещается в аккумулятор. Команда 2-байтовая, выполняется за 2 машинных цикла.

Команды вычитания с переносом

Кроме команд ВЫЧИТАНИЯ, в которых не предусматривается заем, существуют команды ВЫЧИТАНИЯ С ЗАЕМОМ. Заем происходит, когда вычитаемое оказывается больше уменьшаемого. При этом устанавливается в 1 перенос. Хотя при выполнении этих команд фактически имеет место заем, их называют ВЫЧИТАНИЕ С ПЕРЕНОСОМ, потому что в соответствии с результатом их выполнения устанавливается соответствующим образом разряд переноса в регистре состояния.

С помощью команд ВЫЧИТАНИЕ С ПЕРЕНОСОМ микропроцессор может выполнять вычитание с повышенной точностью. Команды ВЫЧИТАНИЯ С ПЕРЕНОСОМ аналогичны командам ВЫЧИТАНИЯ, в которых, как известно, заем не производится, и отличаются лишь тем, что при их выполнении участвует бит разряда переноса регистра состояния. Результат загружается в аккумулятор.

а) Вычитание с регистром и переносом

SBB r (A)-(r)-CA

ПАМЯТЬ

SBB r

Команда 1-байтовая, выполняется за 1 машинный цикл.

б) Вычитание с памятью и переносом

SBB М (A)-(М)-CA

ПАМЯТЬ

SBB М

По этой команде содержимое ячейки памяти, адрес которой находится в регистровой паре H,L, вычитается из содержимого аккумулятора (регистр А). Результат помещается в аккумулятор. Команда 1-байтовая, выполняется за 2 машинных цикла.

в) Вычитание с непосредственными данными и переносом

SBI данные (A)-<данные>-CA

ПАМЯТЬ

SBI

Данные

Команда 2-байтовая, выполняется за 2 машинных цикла.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]