L---+---+---+---+---N 1, если старший бит поля равен 1; иначе 0
Z 1, если все биты поля равны 0; иначе 0
V всегда 0
C всегда 0
X не изменяется
Формат команды:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
----T---T---T---T---T---T---T---T---T---T----------------------¬
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ Исполнительный адрес ¦
¦ 1 ¦ 1 ¦ 1 ¦ 0 ¦ 1 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ Мода Регистр ¦
+---+---+---+---+---+---+---+---+---+---+---T-------+----------+
¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦СМ ¦ Смещение ¦ДЛ ¦ Длина ¦
L---+---+---+---+---+-------------------+---+------------------Поля команды:
Поле СМ определяет способ задания смещения:
0 - смещение задается в поле Смещения.
1 - биты [8:6] слова расширения задают регистр данных, содержащий смещение; биты [10:9] равны 0.
Поле Смещение задает смещение в зависимости от поля СМ
следующим образом:
Если СМ = 0, поле Смещения содержит непосредственный операнд в диапазоне 0-31, задающий соответствующую величину смещения.
Если СМ = 1, поле Смещения определяет регистр данных, содержащий смещение в диапазоне [ -(2**31); 2**31-1 ]
Поле ДЛ определяет способ задания длины:
0 - длина битового поля задается непосредственно в команде в поле Длины.
1 - биты [2:0] слова расширения задают регистр данных, содержащий длину; биты [4:3] равны 0.
Поле Длина задает длину в зависимости от поля ДЛ:
Если ДЛ = 0, в поле Длины содержится непосредственный операнд в диапазоне 0,1,...31, задающий значение длины, равное соответственно 32,1,...31.
Если ДЛ = 1, поле Длины определяет регистр данных, содержащий величину, которая будучи взята по модулю 32, принимает значение 0,1,...31 и задает соответственно значение длины, равное 32,1,...31.
Поле Исполнительного адреса определяет базовый адрес битового поля. Допустимы только способы прямой регистровой адресации данных или адресации изменяемых управляющих операндов:
-----------------T----T--------¬-----------------T----T--------¬
¦Способ адресации¦Мода¦Регист𠦦Способ адресации¦Мода¦Регистр ¦
+----------------+----+--------++----------------+----+--------+
¦ Dn ¦000 ¦ном.Dn ¦¦ (xxx).W ¦111 ¦ 000 ¦
+----------------+----+--------++----------------+----+--------+
¦ An ¦ - ¦ - ¦¦ (xxx).L ¦111 ¦ 001 ¦
+----------------+----+--------++----------------+----+--------+
¦ (An) ¦010 ¦ном.An ¦¦ #<данные> ¦ - ¦ - ¦
+----------------+----+--------++----------------+----+--------+
¦ (An)+ ¦ - ¦ - ¦¦ ¦ ¦ ¦
+----------------+----+--------++----------------+----+--------+
¦ -(An) ¦ - ¦ - ¦¦ ¦ ¦ ¦
+----------------+----+--------++----------------+----+--------+
¦ (d{16},An) ¦101 ¦ном.An ¦¦ (d{16},PC) ¦ - ¦ - ¦
+----------------+----+--------++----------------+----+--------+
¦ (d{8},An,Xn) ¦110 ¦ном.An ¦¦ (d{8},PC,Xn) ¦ - ¦ - ¦
+----------------+----+--------++----------------+----+--------+
¦ (bd,An,Xn) ¦110 ¦ном.An ¦¦ (bd,PC,Xn) ¦ - ¦ - ¦
+----------------+----+--------++----------------+----+--------+
¦([bd,An,Xn],od) ¦110 ¦ном.An ¦¦ ([bd,PC,Xn],od)¦ - ¦ - ¦
+----------------+----+--------++----------------+----+--------+
¦([bd,An],Xn,od) ¦110 ¦ном.An ¦¦ ([bd,PC],Xn,od)¦ - ¦ - ¦
L----------------+----+---------L----------------+----+--------BFEXTS Загрузка битового поля с распространением знака BFEXTS
------------------------------------------------------------Операция: <битовое поле> В Источнике > Dn
Синтаксис: BFEXTS <иа> {смещение:длина},Dn
Атрибуты: Размер не задается
Описание:
Считывается битовое поле по указанному исполнительному адресу; его знак распространяется до 32 бит и результат помещается в регистр данных.
Поле определяется смещением и длиной. Смещение задает начальный бит поля, а длина - количество бит поля.
Коды условия:
X N Z V C
----T---T---T---T---¬
¦ - ¦ * ¦ * ¦ 0 ¦ 0 ¦
L---+---+---+---+---N 1, если старший бит поля равен 1; иначе 0
Z 1, если все биты поля равны 0; иначе 0
V всегда 0
C всегда 0
X не изменяется
Формат команды:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
----T---T---T---T---T---T---T---T---T---T----------------------¬
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ Исполнительный адрес ¦
¦ 1 ¦ 1 ¦ 1 ¦ 0 ¦ 1 ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ Мода Регистр ¦
+---+---+---+---+---+---+---+---+---+---+---T-------+----------+
¦ 0 ¦Регистр Dn ¦СМ ¦ Смещение ¦ДЛ ¦ Длина ¦
L---+-----------+---+-------------------+---+------------------Поля команды:
Поле Регистра Dn определяет регистр-Приемник.
Поле СМ определяет способ задания смещения:
0 - смещение задается в поле Смещения.
1 - биты [8:6] слова расширения задают регистр данных, содержащий смещение; биты [10:9] равны 0.
Поле Смещение задает смещение в зависимости от поля СМ
следующим образом:
Если СМ = 0, поле Смещения содержит непосредственный операнд в диапазоне 0-31, задающий соответствующую величину смещения.
Если СМ = 1, поле Смещения определяет регистр данных, содержащий смещение в диапазоне [ -(2**31); 2**31-1 ]
Поле ДЛ определяет способ задания длины:
0 - длина битового поля задается непосредственно в команде в поле Длины.
1 - биты [2:0] слова расширения задают регистр данных, содержащий длину; биты [4:3] равны 0.
Поле Длина задает длину в зависимости от поля ДЛ:
Если ДЛ = 0, в поле Длины содержится непосредственный операнд в диапазоне 0,1,...31, задающий значение длины, равное соответственно 32,1,...31.
Если ДЛ = 1, поле Длины определяет регистр данных, содержащий величину, которая будучи взята по модулю 32, принимает значение 0,1,...31 и задает соответственно значение длины, равное 32,1,...31.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.