Базовые арифметические команды сложения, вычитания,
умножения и деления имеют два операнда (источник и получатель) и реализуют
следующее действие: приемник «- приемник ор источник, где ор = +, -, *, /. Для
некоммутативных операций вычитания и деления имеются обратные варианты команд:
приемник +- источник ор приемник, где ор = - , / . Во всех случаях один из
операндов должен быть в регистре ST(0). Имеются шесть форм базовых команд:
a) Fxxx flfjFxxx память
б) FIxxx память
в) Fxxx ST, ST(i)
г) Fxxx ST(4ST
д) FxxxP STfyXST где xxx - ADD, SUB, MUL, DIV, SUBR (обратное вычитание) и
DIVR (обратное деление). Действия команд всех шести форм (для вычитания)
показаны. В форме а процессор извлекает из стека верхний операнд (источник) и
следующий операнд (приемник), а затем включает в стек результат операции. В
форме б адресуемый операнд в памяти является источником, а регистр ST(0) -
приемником. Допускаются только операнды с одинарной и двойной точностью. Форма в
аналогична форме б, но операнд в памяти является 16- или 32-битным целым числом,
а не числом с плавающей точкой. Преобразование в формат с плавающей точкой
производится автоматически. В форме г любой численный регистр ST(i') служит
источником, a ST(0) - приемником.
Указатель стека ST не изменяется. В форме д ST(0) является источником, a
ST(/) - приемником и указатель стека не модифицируется. Наконец, в форме е
численный регистр ST(i) является получателем, а ST(0) - источником. По окончании
операции источник ST(0) извлекается из стека.