Тема: Комманды процессора, структура комманд, архитектура процессора 386
Комманды могут иметь различный формат
1) RR - регистр-регистр
[КОП][R1][R2]
КОП - восемь бит (0-7), код операции
R1 - номер одного из регистров общего назначения, 4 бита (8 - 11)
R2 - тоже самое, что и R2, 4 бита (12 - 15)
Например:
[15] [4][7] - сложение арифметическое с фиксированной запятой
(считывание четвертого регистра и скаладывание его с седьмым)
2) RX - регистр-индекс
Регистр-индексируемая область оперативной памяти
Длина 4 байта
[КОП][R1][X2][B2][D2]
[КОП] - см. выше (0-7 бит)
[R1] - адрес яйчейки памяти, где находится второй операнд (8-11 бит)
[X2] - индексный регистр (12-15 бит)
[B2] - базовый регистр (16-19 бит)
[D2] - наверное, длина "буфера" для помещения туда результата. (20-31 бит)
A2 - яйчейка со вторым операндом
А2 = [X2]+[B2]+D2
Это значит, что надо взять содержимое по адресам X2 и B2 и... D2 - не
знаю..
Например:
[51][1][3][A][210]
| | |-- базовый регистр
| |----- индексный регистр
|--------- код операции
[41][R1][X2][B2][D2] - загрузка адреса
[50][R1][X2][B2][D2] - запись в память
[47][М][X2][B2][D2] - переход по условию (М - маска)
3) Память-операнд (4 байта)
[КОП][I2][B1][D1]
[I2] - не написано, но есть ссыка на формулу A1 = [B1] + D1
[B1] - базовый регистр
[D1] - смещение
Коды:
95 - сравнение символов
92 - запись символа
[I2]->[A1]=[B1] + D1
Осуществляется сравнение по абсолютной величине 2 байт. Первый операнд находится по адресу [A1], а второй непосредственно в коде комманд.
100 | 5500010C
104 | 46100110
108 | 47F00100
10C | 00000002
110 | 47F00110
Павлуша писал(а):есть на свете книга такая: автор Д.Кнут и назывется она э-э-э что-то вроде : "процессоры семейства ИНТЕЛ и их программирование"
Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 111