Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
2017-05-16 | 746 |
5.00
из
|
Заказать работу |
|
|
Программные регистры
Регистрами называют участки высокоскоростной памяти, расположенные внутри ЦПУ и предназначенные для оперативного хранения данных и быстрого доступа к ним со стороны внутренних компонентов процессора. Существует 8 регистров общего назначения, 6 сегментных регистров, регистр состояния процессора, или регистр флагов (EFLAGS), и регистр указателя команд (EIP).
Регистры EAX, EBX, ECX, EDX – это регистры общего назначения. Они имеют определённое назначение (так уж сложилось исторически), однако в них можно хранить любую информацию.
Регистры EBP, ESP, ESI, EDI – это также регистры общего назначения. Они имеют уже более конкретное назначение. В них также можно хранить пользовательские данные, но делать это нужно уже более осторожно, чтобы не получить «неожиданный» результат.
В МП 8086/8088 имеется 14 регистров. В функциональном отношении они делятся на группы:
Основные конструкции языка. Intel-синтаксис.
Intel-синтаксис — один из форматов записи мнемоники инструкций процессора. Intel-синтаксис используется в документации Intel[1], в ассемблерах для MS-DOS и Windows (MASM, TASM, встроенный ассемблер Visual Studio, и т.д.)
|
Особенности:
1. Приёмник находится слева от источника.
2. Название регистров зарезервировано (нельзя использовать метки с именами eax, ebx и т. д.)
Например, код
mov eax, ebx
пересылает в регистр eax значение, содержащееся в ebx, что функционально эквивалентно следующему коду:
push ebx; положить в стек значение ebx
pop eax; записать значение из стека в eax
Популярен во многом благодаря тому, что используется Intel в документации к своим процессорам.
Программа на ассемблере представляет собой совокупность блоков памяти, называемых сегментами. Программа может состоять из одного или нескольких таких блоков-сегментов. Сегменты программы имеют определенное назначение, соответствующее типу сегментов: кода, данных и стека. Названия типов сегментов отражают их назначение. Деление программы на сегменты отражает сегментную организацию памяти процессоров Intel (архитектура IA-32). Каждый сегмент состоит из совокупности отдельных строк, в терминах теории компиляции называемых предложениями языка. Для языка ассемблера предложения, составляющие программу, могут представлять собой синтаксические конструкции четырех типов.
командой называется оператор программы, который непосредственно выполняется процессором после того, как программа будет скомпилирована в машинный код, загружена в память и запущена на выполнение (т.е. на этапе выполнения программы).
Способы адресации к памяти.
Режимы адресации – это различные способы указания местоположения операндов. Операнды чаще всего находились в регистрах или в переменных в памяти. Но в процессоре Intel 8086 существуют также более сложные режимы, которые позволяют организовать работу с массивами, структурами, локальными переменными и указателями.
1. Неявная адресация. Местоположение операнда фиксировано и определяется кодом операции. Примеры:
cbw
mul al
Команда CBW всегда работает с регистрами AX и AL, а у команды MUL фиксировано положение первого множителя и результата. Такой режим адресации делает машинную команду короткой, так как в ней отсутствует указание одного или нескольких операндов.
|
2. Непосредственная адресация. При непосредственной адресации значение операнда является частью машинной команды. Понятно, что в этом случае операнд представляет собой константу. Примеры:
mov al,5
add bx, 1234h
mov dx,a
Обратите внимание, что в третьей строке в DX помещается адрес метки или переменной a, а вовсе не значение по этому адресу. По сути адрес метки тоже является числовой константой.
3. Абсолютная прямая адресация. В машинной команде содержится адрес операнда, находящегося в памяти. Пример:
mov dx, [a]
Вот тут уже в DX помещается значение из памяти по адресу a. Сравните с предыдущим пунктом. Квадратные скобки обозначают обращение по адресу, указанному внутри этих скобок.
4. Относительная прямая адресация. Этот режим используется в командах передачи управления. В машинной команде содержится смещение, которое прибавляется к значению указателя команд IP. То есть указывается не сам адрес перехода, а на сколько байтов вперёд или назад надо перейти. Пример:
metka:...
loop metka
У такого режима адресации два преимущества. Во-первых, машинная команда становится короче, так она содержит не полный адрес, а только смещение. Во-вторых, такой код не зависит от адреса, по которому он размещается в памяти.
5. Регистровая адресация. Операнд находится в регистре. Пример:
add ax,bx
6. Косвенная регистровая (базовая) адресация. Адрес операнда находится в одном из регистров BX, SI или DI. Примеры:
add ax,[bx]
mov dl,[si]
Размер операнда в памяти здесь определяется размером первого операнда. Так как AX – 16-разрядный регистр, то из памяти берётся слово по адресу в BX. Так как DL – 8-разрядный регистр, то из памяти берётся байт по адресу в SI. Это правило верно и для других режимов адресации.
7. Косвенная регистровая (базовая) адресация со смещением
Адрес операнда вычисляется как сумма содержимого регистра BX, BP, SI или DI и 8- или 16-разрядного смещения. Примеры:
add ax,[bx+2]
mov dx,[array1+si]
В качестве смещения можно указать число или адрес метки. О размере смещения не беспокойтесь – компилятор сам его определяет и использует нужный формат машинной команды.
8. Косвенная базовая индексная адресация
|
Адрес операнда вычисляется как сумма содержимого одного из базовых регистров BX или BP и одного из индексных регистров SI или DI. Примеры:
mov ax,[bp+si]
add ax,[bx+di]
Например, в одном из регистров может находиться адрес начала массива в памяти, а в другом – смещение какого-то элемента относительно начала.
9. Косвенная базовая индексная адресация со смещением. Адрес операнда вычисляется как сумма содержимого одного из базовых регистров BX или BP, одного из индексных регистров SI или DI и 8- или 16-разрядного смещения. Примеры:
mov al,[bp+di+5]
mov bl,[array2+bx+si]
|
|
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!