- •Программная инженерия
- •1.1Объектно-ориентированная технология разработки программ
- •1.2 Понятие класса
- •1.3 Понятие объекта
- •1.4 Составляющие класса и объекта
- •1.7 Понятие наследования
- •1.8 Структура классов в Delphi
- •1.9 Виды наследования
- •1.4.1 Классификация грамматик по Хомскому
- •1.4.2 Классификация языков
- •2.3 Цепочки вывода (левосторонний, правосторонний)
- •2.4 Проблемы однозначности и эквивалентности грамматик
- •2.7 Построение ка для языка, заданного регулярным выражением.
- •2.9 Определение ll(k)- грамматики и принципы построения распознавателей для этой грамматики.
- •2.12 Понятие прохода
- •2.13 Общие принципы генерации кода
- •2.14 Синтаксически управляемый перевод (су-схемы).
- •Технология разработки программного обеспечения
- •Начало проекта
- •1. Конструкция иерархии данных
- •2. Конструкция последовательности данных
- •3. Конструкция выбора данных
- •4. Конструкция повторения данных
- •Проектирование для потока данных типа «преобразование»
- •Проектирование для потока данных типа «запрос»
- •Базы данных
- •13. Физическая организация баз данных
- •14. Хешированные, индексированные файлы
- •15. Защита баз данных.
- •16.Целостность и сохранность баз данных.
- •Организация эвм и систем
- •Операционные системы
- •2.5.2. Программа типа exe
- •4.3.1. Непосредственная адресация
- •4.3.2. Регистровая адресация
- •4.3.3. Косвенная адресация
- •4.3.4. Прямая адресация (адресация по смещению)
- •4.3.5. Базовая адресация
- •4.3.6. Индексная адресация
- •4.3.7. Базовая-индекснаяадресация
- •5.2.3.1. Сложение и вычитание
- •5.2.3.2. Инкремент и декремент
- •5.2.3.3. Умножение и деление
- •5.2.3.4. Изменение знака числа
- •6.5.3. Запрет определенного маскируемого прерывания
4.3.1. Непосредственная адресация
Операнд указывается непосредственно в поле команды, например:
mov ax,312 ; здесь 312 задается непосредственно
одним недостатком данного способа адресации является то, что размер непосредственного операнда ограничен длиной адресного поля команды, которое в большинстве случаев меньше длины машинного слова.
Непосредственная адресация сокращает время выполнения команды, так как не требуется обращение к памяти за операндом.
4.3.2. Регистровая адресация
Операнд находится в одном из регистров. Например, оба операнда в команде
mov ds,bx
задаются с помощью регистрового способа адресации.
Регистровая адресация(РА) напоминает прямую адресацию. Различие состоит в том, что адресное поле инструкции указывает не на ячейку памяти, а на регистр процессора.
Двумя основными преимуществами регистровом адресации являются: короткое адресное поле в команде и исключение обращений к памяти
4.3.3. Косвенная адресация
Адрес операнда находится в одном из регистров — SI, DI, BX, BP. Например, команда
mov ax,[si]
помещает в регистр AX слово из ячейки памяти, смещение которой указано в регистре SI. Второй операнд задан с помощью косвенной адресации.
с помощью ограниченного адресного поля команды указывается адрес ячейки, содержащей полноразрядный исполнительный адрес операнда.
При косвенной адресации содержимое адресного ноля команды остается неизменным, в то время как косвенный адрес в процессе выполнения программы можно изменять. Это позволяет проводить вычисления, когда адреса операндов заранее неизвестны и появляются лишь в процессе решения задачи.
Следует отметить, что регистры SI, DI, BX, BP использовались до 80386 процессора, но в последующих поколениях процессоров для задания адреса операнда можно еще использовать регистры EAX, EBX, ECX, EDX, ESI, EDI, EBP и ESP.
4.3.4. Прямая адресация (адресация по смещению)
Абсолютный адрес операнда можно задавать в виде СЕГМЕНТ:СМЕЩЕНИЕ, гдеСЕГМЕНТ— адрес сегмента на который указываеткакой-либосегментный регистр (CS, DS, SS или ES), аСМЕЩЕНИЕ — адрес операнда относительно сегментного регистра (относительный адрес).
Примеры:
mov ax,ss:0037h mov bx,es:var
http://www.sklyaroff.ru |
75 |
4.3.5. Базовая адресация
Адрес операнда формируется сложением содержимого базового регистра (BP или BX) и смещения. Если смещение не задано, то предполагается нулевое значение.
Если используется BP, то адрес определенного операнда отсчитывается относительно сегмента, на который указывает регистр SS. Если используется BX, то адрес отсчитывается относительно сегмента, на который указывает регистр DS.
Например, команда:
mov ax,[bx+2]
помещает в регистр AX слово, которое находится в сегменте, указанном в DS, со смещением на два больше, чем число из BX.
Базовая адресация имеет множество альтернативных форм. Так, эквивалентными формами являются:
смещение[BP] [смещение][BP] [BP+смещение] [BP].смещение [BP]+смещение
В каждом случае адрес операнда равен сумме значений указанного смещения и содержимого заданного регистра.