Команды ЭВМ

Большое изумление у человека, не знакомого с вычислительной техникой вызывает тот факт, что все разнообразие решаемых на ЭВМ задач реализуется с помощью небольшого набора очень простых ко­манд. Система команд у типичной ЭВМ включает в себя всего 60— 150 базовых команд. Все команды в основном служат для выполне­ния очень простых действий, таких, как прочитать, запомнить, сло­жить, сдвинуть, сравнить и т.д. Интеллектуальность ЭВМ достигает­ся за счет того, что ЭВМ способна выполнять программы, состоящие из большого числа таких простых действий с огромной, не достижи­мой для человека скоростью. В данном управделе учебника кратко рас­смотрим набор команд, используемых в типичных ЭВМ, и действия, реализуемые этими командами.

При описании системы команд ЭВМ обычно принято классифи­цировать команды по функциональному назначению, длине, способу адресации и другим признакам. Рассмотрим основные группы команд, придерживаясь классификации команд на группы по функ­циональному признаку.

Команды передачи данных. Данная группа команд включает в себя подгруппы команд передачи кодов между регистрами внутри процессора, из регистров процессора в память, из памяти в регист­ры процессора, из одних ячеек памяти в другие и передачи данных между процессором и портами внешних устройств. Отдельную под­группу составляют команды работы со стеком. Они позволяют вклю­чать данные в стек для временного хранения и извлекать данные из стека при необходимости их .использования. Подробное назначение и принципы использования стеков в ЭВМ рассмотрим ниже при обсу­ждении работы с подпрограммами и прерываниями.

Команды обработки данных. Данную группу команд с точки зрения выполняемых над данными операций можно подразде­лить на арифметические (сложить, вычесть, умножить и т.д.), логиче­ские (операции И, ИЛИ, НЕ и т.д.) и команды сдвига. Команды этого типа могут иметь один или два операнда. Операнды могут храниться в регистрах центрального процессора, в памяти или в самой команде. Результат операции формируется в регистре-приемнике или в спе­циализированном регистре-аккумуляторе. Команды данной группы сформируют признаки результатов, устанавливаемые в регистре фла­гов процессора: перенос из старшего разряда, переполнение, нулевой результат и др. К арифметическим командам относят также и коман­ды сравнения. Обычно для сравнения двух чисел процессор выполня­ет операцию вычитания. По результату вычитания устанавливаются флаги во флаговом регистре процессора. Очевидно, что если сравни­ваемые величины равны, результат вычитания будет нулевым и во флаговом регистре установится флаг нулевого результата. Если пер­вая из сравниваемых величин больше — результат вычитания будет отрицательным и установится флаг отрицательного результата и т.д. Результат вычитания не сохраняется в памяти, по состоянию флаго­вого регистра можно судить о результатах сравнения двух величин. Многие процессоры имеют команды сравнения операнда с нулем. В некоторых процессорах имеются команды проверки или установки состояния отдельных битов в операнде.

Команды передачи управления. Они имеют важное значе­ние, так как используются для изменения естественного порядка сле­дования команд и организации циклических участков в программах.

Простейшей командой передачи управления является команда безусловного перехода JMP <адрес>, которая загружает адрес пере­хода, указанный в команде, в программный счетчик. Команды ycловного перехода проверяют указанное в команде условие и модифи­цируют программный счетчик, если условие истинно. Обычно ко­манды условного перехода используются после команд, изменяющих состояние флагового регистра (например, команд сравнения). При проверке условия производится сравнение состояния одного или не­скольких флагов из флагового регистра с комбинацией, указанной в коде команды условного перехода. Модификация программного’ счетчика может производиться либо загрузкой в него нового значе­ния, либо сложением его со смещением, указанным в команде.

Добавить комментарий