КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Структура машинной команды. Префикс замены сегмента в памяти
Машинная команда должна содержать следующую информацию: 1) код операции, который помещается в первом байте команды. 2) способ адресации и собственно адрес. В команде должно быть закодировано: содержаться ли операнды в регистрах, или это непосредственные данные, или операнд находится в памяти. Форматы команд ЦП в языке ассемблера строится в соответствие с двоичной внутренней машинной формой представления, по которой обобщенный формат использует базовую 2х байтную структуру для построения основной части команды, имеющей вид.
Размер данных и количество следующих байтов команды определяются конкретным кодом операции и наличием в команде фиксированных байтов, префиксов, разрядностей данных и адресаций. Буквами 0 обозначены байты КОП. d - направление пересылки результатов w – размер данных: 0 – байт; 1 – слово / двойное слово mod – модификация операндов r/m – регистр или указатель типа операнда reg/000 – могут продолжаться биты КОП В машинной форме после основной части команды с указателями модификации адресов памяти может рассматриваться 2х байтный адрес для прямой адресации, однобайтное или 2х байтное смешение, одно или 2х байтные непосредственные данные, 2х байтные смещения и 2х байтный сегментный адрес для прямой межсегментной адресации. Длина команды ЦП без префиксов может достичь 6 байт. Некоторые группы команд имеют дополнительные сокращенные форматы, которые обрабатываются быстрее. Если на код операции и режим адресации выделено 2 байта, то поля mod и r/m а также бит w определяют разные режимы адресации и назначение сегментных регистров по умолчанию. Второй байт, используемый для адресации почти всех операндов называется пост-байтом. Mod и r/m используются совместно. Дают 32 комбинации. 8 регистров и 24 режима адресации. Reg/000 это регистры во втором операнде и код операции. Примеры: 1) команда mov Si,BX расширяем побитно структуру команды
2) mov DS,DX используется сегментный регистр
3) пересылка непосредственных данных в регистр mov AH,9h
Комплекс префиксов и суффиксов обеспечивает выбор режимов выполнения команд. Команды могут использовать следующие группы префиксов, систематизированных по семантическим признакам: 1) Задаваемые в виде предварительной операции LOCK-префикс для блокировки шины данных (0F0h) REP[xx]-префиксы повторения команд обработки строк 2) Задаваемые явно в операнда префиксами задания сегментов DS:,CS:,SS:,ES:. Или неявно через директиву управления доступом к сегментам памяти через директиву ASSUME. 3) префикс определяется режимом трансляции и форматом операнда префикс 32-х разрядного адреса префикс 32-х разрядных данных 4) префикс замены сегментов в памяти. При переназначении сегм. Регистра процессор создает байт следующего вида:001RG110 Если режим адресации использует регистр BP для формирования физического адреса, по умолчанию используется содержимое сегментного регистра SS, а в других режимах адресации – содержимое регистра DS. Если в команде используется префикс замены сегмента, то длина основной команды увеличивается на 1 байт префикса переключения сегментов, а время выполнения – на 2 цикла. Аналогичная замена невозможна, при вычислении адреса текущей команды. В этом случае всегда используется регистр CS. При выполнении основных манипуляций чтения и записи со стеком с использованием регистра SP всегда подключается сегментный регистр ES. Программист может использовать сегментный префикс и переназначать сегментное назначение. При переназначении сегментного регистра процессор создает байт 001RG110. Транслятор при построении объектного кода также встраивает сегментные префиксы в команды в случае необходимости.
Дата добавления: 2014-01-07; Просмотров: 803; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |