Все операции, выполняемые в командах ЭВМ, принято делить на пять классов.
1) Арифметико-логические и специальные – команды, в которых выполняется собственно преобразование информации.
2) Пересылки и загрузки – обеспечивают передачу информации между процессором и памятью или между различными уровнями памяти (СОЗУ <–>ОЗУ). Разновидность – загрузка регистров и ячеек константами.
3) Ввода/вывода – обеспечивают передачу информации между процессором и внешними устройствами. По структуре они очень похожи на команды предыдущего класса. В некоторых ЭВМ принципиально отсутствуют различия между ячейками памяти и регистрами внешних устройств (единое адресное пространство) и класс команд ввода/вывода не выделяется, все обмены осуществляются в рамках команд пересылки и загрузки.
4) Передачи управления – команды, которые изменяют естественный порядок выполнения команд программы. В качестве условий обычно используются признаки результата предыдущей операции, которые хранятся в специальном регистре признаков (флажков). Чаще всего формируются и проверяются признаки нулевого результата, отрицательного результата, наличие переноса из старшего разряда, четности числа единиц в результате и др. Различают три разновидности команд передачи управления:
– переходы;
– вызовы подпрограмм;
– возвраты из подпрограмм.
Команды переходов помещают в программный счетчик содержимое своего адресного поля – адрес перехода. При этом старое значение программного счетчика теряется. В микроЭВМ часто для экономии длины адресного поля команд условных переходов адрес перехода формируется как сумма текущего значения программного счетчика и относительно короткого знакового смещения, размещаемого в команде. В крайнем случае, в командах условных переходов можно и вовсе обойтись без адресной части – при выполнении условия команда «перепрыгивает» через следующую команду, которой обычно является безусловный переход.
Команда вызова подпрограммы работает подобно команде безусловного перехода, но старое значение программного счетчика предварительно сохраняется в специальном регистре или в стеке. Команда возврата передает содержимое верхушки стека или специального регистра в программный счетчик. Команды вызова и возврата работают «в паре». Подпрограмма, вызываемая командой вызова, должна заканчиваться командой возврата, что обеспечивает по окончании работы подпрограммы передачу управления в точку вызова. Хранение адресов возврата в стеке обеспечивает возможность реализации вложенных подпрограмм.
5) Системные – команды, выполняющие управление процессом обработки информации и внутренними ресурсами процессора. К таким командам относятся команды управления подсистемы прерывания, команды установки и изменения параметров защиты памяти, команда останова программы и некоторые другие. В простых процессорах класс системных команд немногочисленный, а в сложных мультипрограммных системах предусматривается большое число системных команд.