оманды арифметических операций. В табл. 3.1 перечислены коман" ды арифметических операций в одноадресной ЭВМ, где А — содержимое аккумулятора, а М—содержимое адресуемой ячейки памяти.
Наиболее простая арифметическая операция — это сложение в двоичном коде. Сложение с повышенной точностью требует нескольких операций суммирования с участием признака переноса. Команда ADD WITH CARRY используется именно в этой ситуации. Так, для сложения чисел 4327 и 5096 в ЭВМ, которая за цикл команды может сложить только две значащие цифры, используется команда ADD
для сложения двух младших значащих цифр:
.jpg)
Затем используется команда ADD WITH CARRY для сложения двух старших значащих цифр и признака переноса:
.jpg)
Таким образом, общий результат равен 9423. Другой простой арифметической операцией является двоичное вычитание в двух видах. Как и при сложении, специальная команда (SUBTRACT WITH CARRY) необходима для выполнения вычитания с повышенной точностью.
Таблица 3.1.
Команды арифметических операций
Название
|
команды
|
Операция
|
ADD
|
(СЛОЖИТЬ)
|
А=А+М
|
ADD WITH CARRY
|
(СЛОЖИТЬ С ПЕРЕ
|
A=A+M+CARRY
|
|
НОСОМ)
|
|
SUBTRACT
|
(ВЫЧЕСТЬ)
|
А=А—М
|
SUBTRACT WITH
|
(ВЫЧЕСТЬ С ЗАЕМОМ)
|
А=А—М—CARRY
|
CARRY
|
|
INCREMENT
|
(УВЕЛИЧИТЬ НА 1)
|
М=М+1
|
DECREMENT
|
(УМЕНЬШИТЬ НА 1)
|
м=м—i
|
MULTIPLY
|
(УМНОЖИТЬ)
|
А=АХМ
|
DIVIDE
|
(РАЗДЕЛИТЬ)
|
А=А-гМ
|
Большинство ЭВМ имеют также команды INCREMENT и DECREMENT. Эти команды используются для добавления 1 или вычитания 1 из содержимого счетчиков, регистров индексов и регистров косвенного адреса. Команды INCREMENT и DECREMENT короче по формату и быстрее по выполнению, чем команды ADD и SUBTRACT. Кроме того, команды INCREMENT и DECREMENT не воздействуют на признак переноса, и, таким образом, они могут быть использованы в циклах, осуществляющих арифметические операции с повышенной точностью. Последовательность команд
ADD WITH CARRY @ Rl
INCREMENT Rl
DECREMENT R2
прибавляет 1, к косвенному адресу, находящемуся в регистре 1, и вычитает 1 из счетчика, содержимое которого записано в регистре 2, без воздействия на признак переноса, полученный при сложении. В этом случае можно использовать значение признака переноса при следующем повторении- последовательности команд.
Некоторые ЭВМ имеют команды MULTYPLY и DIVIDE. Такие команды требуют операций с двойным слоеом, так как в результате умножения двух однословных чисел получается слово удвоенной разрядности и, наоборот, при делении чисел делимое должно быть длиной в два слова, если делитель, частное и остаток — все слова обычной длины. Если ЭВМ не имеет команд MULTYPLY и DIVIDE, то эти команды можно выполнить путем многократного повторения опера-ций сложения и вычитания.