Определение команды. (л9)
Назначение регистра счетчика (указателя) команд. Понятие формата команд. Привести два вида формата двухоперандных команд с назначением каждого поля. Для каких команд можно применять укороченный вид. Привести примеры. (л9). Командой называется элементарное действие, которое может выполнить процессор без дальнейшей детализации. Последовательность команд, выполнение которых приводит к достижению определенной цели, называется программой. Команды программы кодируются двоичными словами и размещаются в памяти ЭВМ. Вся работа ЭВМ состоит в последовательном выполнении команд программы. Действия по выбору из памяти и выполнению одной команды называются командным циклом.
В составе любого процессора имеется специальный регистр, который хранит адрес выполняемой команды — счетчик команд или программный счетчик (IP). После выполнения очередной команды его значение увеличивается на длину выполненной команды). Таким образом осуществляется выполнение последовательности команд.
Во время выполнения командного цикла процессор реализует следующую последовательность действий: 1. Извлечение из памяти содержимого ячейки, адрес которой хранится в программном счетчике (IP), и размещение этого кода команды в регистре команд. 2. Увеличение содержимого программного счетчика на длину команды. 3. Формирование адреса операндов команды. 4. Извлечение этих операндов из памяти. 5. Выполнение заданной в команде операции. 6. Размещение результата операции в указанном в команде месте (регистре или ОП) 7. Переход к п. 1. Фактически вся работа процессора заключается в циклическом выполнении пунктов 1—7 командного цикла. При запуске машины в счетчик команд (IP) аппаратно помещается фиксированное значение — начальный адрес программы. В дальнейшем содержимое программного счетчика (IP) модифицируется в командном цикле. Прекращение выполнения командных циклов может произойти только при выполнении специальной команды "СТОП".
Под форматом команды следует понимать длину команды, количество, размер, положение, назначение и способ кодировки ее полей.
Реальная система команд обычно имеет команды нескольких форматов, причем тип формата определяется в поле КОП. Рис. 1. Форматы двухоперандных команд микропроцессора I8086 Поле КОП содержит код выполняемой операции. Признак w указывает на длину операндов. При w = 1 операция проводится над словами (2 байта), а при w = 0 - над байтами. Признак d указывает положение приемника результата. Признак d = 1, если результат записывается на место операнда, закодированного в поле reg, и d = 0, если результат записывается по адресу, закодированному полями (md, r/m). Второй байт команды, называемый постбайтом, определяет операнды, участвующие в операции. Поле reg указывает регистр регистровой памяти согласно табл. 1. Таблица 1.
Поля md и r/m задают режим адресации второго операнда согласно табл. 2. Таблица 2.
Примечание: D8 = disp L (однобайтовое смещение); D16 = disp H + disp L (двухбайтовое смещение) это числа, указываемые непосредственно в команде. В командах, использующих непосредственный операнд, признак s вместе с признаком w определяет разрядность непосредственного операнда, записываемого в команде (data), и разрядность выполняемой операции согласно табл. 3. Таблица 3.
Специальные форматы (укороченные) предусмотрены для команд, выполняющих следующие часто используемые операции: -запись содержимого какого-либо регистра в стек; -извлечение содержимого из стека в регистр; - передача непосредственных данных в регистр; - инкремент содержимого регистра (увеличение содержимого регистра на 1); - декремент содержимого регистра (уменьшение содержимого регистра на 1); - обмен содержимым аккумулятора и регистра; - пересылка между аккумулятором и ячейкой памяти; - сложение, вычитание, умножение, деление с участием содержимого аккумулятора и непосредственного операнда. Приведем пример стандартной и специальной команды INC r (инкремент регистра r). Программа ассемблер выбирает более короткий формат команды автоматически: а) стандартный вид команды INC r:
б) специальный (укороченный) вид вид команды INC r:
Во время выполнения командного цикла процессор реализует следующую последовательность действий: 1.Извлечение из памяти содержимого ячейки, адрес которой хранится в программном счетчике (IP), и размещение этого кода команды в регистре команд. 2.Увеличение содержимого программного счетчика на длину команды. 3.Формирование адреса операндов команды. 4.Извлечение этих операндов из памяти. 5.Выполнение заданной в команде операции. 6.Размещение результата операции в указанном в команде месте (регистре или ОП) 7.Переход к п. 1. Фактически вся работа процессора заключается в циклическом выполнении пунктов 1—7 командного цикла. При запуске машины в счетчик команд (IP) аппаратно помещается фиксированное значение — начальный адрес программы. В дальнейшем содержимое программного счетчика (IP) модифицируется в командном цикле. Прекращение выполнения командных циклов может произойти только при выполнении специальной команды "СТОП".
|