Команда
разделяется на группы бит или поля, причем поле кода операции (КОП) показывает,
что должен делать компьютер, а остальные поля, называемые операндами,
идентифицируют требуемую команде информацию. Операнд может содержать данное,
часть адреса данного, косвенный указатель данного или другую информацию,
относящуюся к обрабатываемым командой данным. Общий формат команды представлен
на Рис. 7.13.
![]()
Рис. 7.13. Общий формат команды
Команды
могут содержать несколько операндов, но чем больше операндов и чем они длиннее,
тем больше места занимает команда в памяти и тем больше времени требуется для
передачи ее в ЦП. Чтобы минимизировать общее число бит в команде, большинство
команд, особенно в 16-битных компьютерах, имеют один или два операнда, причем
минимум одним из операндов в двухоперандной команде является регистр. Так как
пространства памяти и ввода-вывода относительно велики, адреса памяти и
ввода-вывода требуют сравнительно много бит, а из-за ограниченного числа
регистров для определения регистра требуются всего несколько бит.
Следовательно, для экономии длины команды следует максимально пользоваться
регистрами. Ограничение двумя операндами, конечно, уменьшает гибкость многих
команд, но в действительности излишняя гибкость и не нужна. Например, команда
сложения, в которой приходится указывать два слагаемых и результат, приводится
к двум операндам посредством загрузки суммы на место одного из слагаемых. При
этом оно теряется, но обычно это не играет роли. Если же слагаемое потребуется
в дальнейшем, его приходится дублировать (запоминать где-то еще) до выполнения
сложения.