Основные команды ЭВМ
Все разнообразие решаемых на ЭВМ задач реализуется с помощью небольшого набора очень простых команд. Система команд у типичной ЭВМ включает в себя всего 60-150 базовых команд. Все команды в основном служат для выполнения очень простых действий, таких, как прочитать, запомнить, сложить, сдвинуть, сравнить и т.д. интеллектуальность ЭВМ достигается за счет того, что ЭВМ способна выполнять программы, состоящие из большого числа таких действий с огромной, не достижимой для человека скоростью.
Рассмотрим основные группы команд, придерживаясь классификации по функциональному признаку.
Команды передачи данных. Данная группа команд включает в себя подгруппы команд передачи кодов между регистрами внутри процессора, из регистров процессора в память, из памяти в регистры процессора, из одних ячеек памяти в другие и передачи данных между процессором и портами внешних устройств. Отдельную подгруппу составляют команды работы со стеком. Они позволяют включать данные в стек для временного хранения и извлекать данные из стека при необходимости их использования.
Команды обработки данных. Данную группу команд с точки зрения выполняемых над данными операций можно подразделить на арифметические (сложить, вычесть, умножить и т.д.), логические (операции И, ИЛИ, НЕ и т.д.) и команды сдвига. Операнды могут храниться в регистрах центрального процессора, в памяти или в самой команде. Результат операции формируется в регистре-приемнике или в специализированном регистре-аккумуляторе. Команды данной группы формируют признаки результатов, устанавливаемые в регистре флагов процессора: переполнение, нулевой результат, перенос из старшего разряда. К арифметическим командам относят также и команды сравнения. Обычно для сравнения двух чисел процессор выполняет операцию вычитания. По результату вычитания устанавливаются флаги во флаговом регистре процессора. Если сравниваемые величины равны, результат вычитания будет нулевым и во флаговом регистре установится флаг нулевого результата. Если первая из сравниваемых величин больше – результат вычитания будет отрицательным и установится флаг отрицательного результата и т.д. результат вычитания не сохраняется в памяти, по состоянию флагового регистра можно судить о результатах сравнения двух величин. Многие процессоры имеют команды сравнения операнда с нулем.
Команды передачи управления. Они имеют важное значение, так как используются для изменения естественного порядка следования команд и организации циклических участков в программах.
Простейшей командой передачи управления является команда безусловного перехода JMP<адрес>, которая загружает адрес перехода, указанный в команде, в программный счетчик. Команды условного перехода проверяют указанное в команде условие и модифицируют программный счетчик, если условие истинно. Обычно команды условного перехода используются после команд, изменяющих состояние флагового регистра (например, команд сравнения). При проверке условия производится сравнение состояния одного или нескольких флагов из флагового регистра с комбинацией, указанной в коде команды условного перехода. Модификация программного счетчика может производиться либо загрузкой в него нового значения, либо сложением его со смещением, указанным в команде. Например, оператор IF
IF (A>B) THEN GOTO L
Некоторого языка высокого уровня может быть реализован, примерно, такой последовательностью команд:
Сравнить А и В
Перейти если больше к адресу L
Первая из команд (сравнение) производит, как отмечалось выше, вычитание значения операнда В из операнда А. если A>B, то результат будет положителен и соответственно флаг во флаговом регистре не установится. Вторая команда (условного перехода) анализирует состояние флага знака и, если он не установлен, модифицирует программный счетчик так, чтобы его значение указывало на адрес L.
Дата добавления: 2016-04-02; просмотров: 844;