Представление инструкций в компьютере

Опубликовано: 6 Октября, 2022

Инструкция — это команда, отдаваемая компьютерному процессору компьютерной программой. Каждая инструкция представляет собой последовательность нулей и единиц. Они помогают в описании физической операции, которую должен выполнять компьютер. Регистры используются для временного хранения данных и выполнения операций, на которые нацелена инструкция.

Описание полей ARM:

1. Код операции представляет основную операцию инструкции.
2. R d представляет операнд назначения регистра. Здесь сохраняется результат, полученный в результате выполнения операции.
3. R n представляет первый операнд-источник регистра.
4. Операнд2 представляет собой второй исходный операнд (в случае инструкций по обработке данных) и смещение (адрес) в случае инструкций по передаче данных.
5. Я представляю Непосредственное, если

  • I = 0, то регистрируется второй исходный операнд.
  • I = 1, тогда второй исходный операнд является 12-битным непосредственным (постоянным).

6. S представляет собой код состояния установки. Это связано с инструкцией условного перехода.
7. Условие представляет Условие. Это связано с инструкцией условного перехода.
8. F представляет формат инструкции, если

  • F = 0, тогда это формат обработки данных
  • F = 1, тогда это формат передачи данных

Различные форматы инструкций:

1. Обработка данных (DP): включает общие арифметические операции (например, сложение, вычитание и т. д.).

Условие Ф я Опкод С Рн Рд Операнд2
4 бита 2 бита 1 бит 4 бита 1 бит 4 бита 4 бита 12 бит

2. Передача данных (DT): включает операции передачи данных (например, загрузка, сохранение).

Условие Ф Опкод Рн Рд Смещение2
4 бита 2 бита 6 бит 4 бита 4 бита 12 бит

Представительство ARM Field:

Каждая инструкция имеет длину 32 бита. На рисунке приведенная выше информация представлена в виде таблицы. Здесь,

Reg refers to the Register numbers between 0 and 15.
Constant: 12 bit constant
Address: 12 bit address

Кодировка инструкций ARM также представлена на рисунке ниже.

Кодировка инструкций ARM:

Инструкция Формат Условие Ф я Опкод С Рн Рд Операнд
ДОБАВЛЯТЬ ДП 14 0 0 4 0 регистр регистр регистр
SUB ДП 14 0 0 2 0 регистр регистр регистр
ДОБАВИТЬ С НЕМЕДЛЕННЫМ ДП 14 0 1 4 0 регистр регистр Постоянный
LDR(НАГРУЗКА) ДТ 14 1 24 регистр регистр Адрес
УЛ (МАГАЗИН) ДТ 14 1 25 регистр регистр Адрес

Каждый из сегментов инструкции называется полем . Код операции, содержащий 4 бита (для DP) и 6 бит (для DT), указывает тип операции, которую выполняет инструкция. (Пример: сложение, вычитание и т. д. в случае DP и загрузка или сохранение в случае DT). R n , содержащий 4 бита, дает номер регистра, который является первым исходным операндом. Операнд2, содержащий 12 бит, дает другой исходный операнд для операции, которая должна быть выполнена инструкцией. R d , содержащий 4 бита, дает номер регистра, который должен получить сумму, и называется регистром назначения .

Примечание :

  1. Несмотря на то, что несколько форматов (DP и DT) усложняют аппаратное обеспечение, сложность снижается за счет сохранения одинаковых форматов.
  2. Первые два поля и последние три поля двух форматов имеют одинаковый размер и четыре из них имеют одинаковые имена.
  3. Длина поля кода операции в формате DT (6 бит) равна сумме длин трех полей формата DP (код операции , S, I: 4+1+1 бит ).
  4. На рисунках числа представлены в десятичной системе счисления, но на самом деле они хранятся в двоичном виде (0 и 1).

Преобразование инструкций ARM в машинные инструкции:

Пример 1: Рассмотрим эту инструкцию ARM.

ДОБАВИТЬ r3,r1,r2

Условие Ф я Опкод С Рн Рд Операнд2
14 0 0 4 0 1 3 2

Значения полей представлены в таблице. Числа хранятся в двоичном виде.

I = 0 because here the second source operand is a register but not a constant.
Opcode = 4(0100) corresponds to the Addition operation.
Since, it is an arithmetic operation, F = 0.

The value in,

           Rn field is 1. (Because r1 is the first source operand)
           Operand2 is 2. (Because r2 is the second source operand)
           Rd field is 3. (Because r3 is destination register in which result achieved by 
                                adding contents of registers r1 and r2 is stored)

Пример 2: Рассмотрим эту инструкцию ARM.

SUB r2,r2,#6

Условие Ф я Опкод С Рн Рд Операнд2
14 0 1 2 0 2 2 6

I = 1 because here the second source operand is a constant.
Opcode = 2(0010) corresponds to the Subtraction operation.
Since, it is an arithmetic operation, F = 0.

The value in, 

          Rn field is 2. (Because r2 is first source operand)
          Operand2 is 6. (Constant)
          Rd field is 2. (Because r2 is destination register in which result achieved by subtracting 6 from r2 is stored).

Пример 3: Рассмотрим эту инструкцию ARM.

ЛДР r4,[r3,#24]

Условие Ф Опкод Рн Рд Смещение2
14 1 24 3 4 24

Opcode = 24(011000) corresponds to the Load operation.
Since,it is a data transfer operation, F = 1.

The value in,

        Rn field is 3. (Because r3 is first source operand).
        Address is 32. (offset to be added to the base register r3)
        Rd field is 4.

Таким образом, инструкции по сборке ARM преобразуются в машинные инструкции.

Полнота инструкции:

Набор инструкций считается полным, если инструкции относятся к каждой из следующих категорий:

  1. Арифметика, логика и инструкции сдвига.
  2. Инструкции по передаче данных (т. е. загрузка и сохранение).
  3. Инструкции ввода-вывода.
  4. Инструкции управления программой включают в себя инструкции, которые проверяют условия состояния с помощью флагов.