Лабораторная работа №2 «Способы адресации» Изучить теоретический материал «Способы адресации»




Дата канвертавання22.04.2016
Памер53.41 Kb.

"Организация и функционирование ЭВМ"

Лабораторная работа №2


«Способы адресации»
1. Изучить теоретический материал «Способы адресации».

2. Получить у преподавателя вариант выбора значений исходных данных (массивов) vec1, vec2 и matr из таблицы индивидуальных заданий и занести свои данные вместо значений, указанных в приведенной программе lab2.asm.

3. Протранслировать программу с созданием файла диагностических сообщений, исправить и объяснить обнаруженные ошибки.

4. Снова протранслировать программу и скомпоновать загрузочный модуль.

5. Выполнить программу в пошаговом режиме под управлением отладчика с фиксацией содержимого используемых регистров и ячеек памяти до и после выполнения команды. Результаты прогона программы должны быть представлены в отчете.

Способы адресации МП Intel 8086

Для адресации данных в процессоре 8086 несколько способов. Данные хранятся в сегменте данных. Сегмент данных определяется программистом, а адреса данных задаются им с помощью меток. Пусть в сегменте данных меткой Mas задан массив чисел каждое размером в один байт. Этой меткой мы будем пользоваться ниже при рассмотрении способов адресации со смещением.


Непосредственная адресация

Вместо адреса в поле операнда команды указывается сам операнд, например: 25, -6, 100. В общем виде операнд записывается как числовая константа.



Прямая адресация

Адрес операнда задается в явном виде меткой. Адрес первого элемента массива Mas будет выглядеть так: Mas. Адрес четвертого элемента можно записать как Mas+3 (так как адрес 1-го эл-та – Mas+0, 2-го – Mas+1 и т.д.). В общем виде адрес записывается как <метка><константа>.


- Прямая регистровая адресация

В поле операнда указывается имя регистра. Примеры: AX, DL, SP.

MOV DS, AX
- Прямая с индексированием Aиспсмещинд, причем Аинд находится в индексном регистре, например:

MOV AX, SOURCE[SI]


- Прямая с базированием Aиспсмещбазы, адрес Абазы находится в базовом регистре, например:

MOV AX, SOURCE[ВХ].



Прямая с индексированием и базированием

Прямая с индексированием часто применяется для обработки двумерных массивов. Смещение операнда вычисляется процессором как сумма содержимого базового и индексного регистра. При этом базовыми являются регистры BX, BP, а индексными SI, DI. Применение других регистров недопустимо. Примеры такой адресации: [BX][SI], [BP][DI]. Индексная адресация с базовым регистром BX обращается в сегмент данных, а с BP – в стек. Возможна замена сегмента, она выполняется аналогично косвенной адресации. Рассмотрим методику работы с двумерным массивом. В BX (или BP) заносится адрес начала строки массива, а в SI (DI) – смещение операнда внутри строки. Общий вид: {<сегмент>:}[<Баз. рег>][<Инд. регистр>].


Косвенная адресация

В случае косвенной адресации адрес смещение операнда в сегменте данных находится в одном из регистров BX, SI, DI. Другие регистры при косвенной адресации недопустимы. Имя регистра заключается в квадратные скобки. Примеры: [SI], [DI], [BX]. Если необходимо обратиться к данным из другого сегмента, например ES, необходимо использовать так называемую замену сегмента. Для этого перед [Рег] указывают имя сегментного регистра и ставят двоеточие, например так: ES:[DI]. Общий вид: {<сегмент>:}[<регистр>]. Фигурные скобки означают, что замена сегмента не обязательна.


Косвенная адресация с индексированием

К смещению, полученному с помощью косвенной адресации, прибавляется дополнительное смещение, и по этому новому адресу и находится в оперативной памяти операнд. Существует несколько форм записи этой адресации, приведем две из них: Mas[SI] (эквивалентно [SI+смещение Mas]), [SI+4]. Смещение Mas можно найти с помощью директивы OFFSET Mas, то есть Mas[SI][SI+OFFSET Mas]. В этом способе адресации можно применять еще и регистр BP, например: [BP+16]. При использовании этого регистра процессор воспринимает смещение как смещение в сегменте стека. Пример: DS:[BP-12]. Общий вид: {<сегмент>:}[<Регистр>+<Смещение>].




Таблица индивидуальных заданий


Вариант

Массивы

Значения элементов

1

vec1

vec2


matr

1,2,3,4,8,7,6,5

-10,-20,10,20,-30,-40,30,40

1,2,3,4,-4,-3,-2,-1,5,6,7,8,-8,-7,-6,-5


2

vec1

vec2


matr

5,6,7,8,12,11,10,9

-20,-30,20,30,-40,-50,40,50

-5,-6,-7,-8,4,3,2,1,-1,-2,-3,-4,8,7,6,5


3

vec1

vec2


matr

8,7,6,5,1,2,3,4

-30,-40,30,40,-10,-20,10,20

-1,-2,-3,-4,8,7,6,5,-5,-6,-7,-8,4,3,2,1


4

vec1

vec2


matr

12,11,10,9,5,6,7,8

-40,-50,40,50,-20,-30,20,30

5,6,7,8,-8,-7,-6,-5,1,2,3,4,-4,-3,-2,-1


5

vec1

vec2


matr

11,12,13,14,18,17,16,15

10,20,-10,-20,30,40,-30,-40

1,2,-4,-3,3,4,-2,-1,5,6,-8,-7,7,8,-6,-5


6

vec1

vec2


matr

18,17,16,15,11,12,13,14

30,40,-30,-40,10,20,-10,-20

-4,-3,1,2,-2,-1,3,4,5,6,7,8,-8,-7,-6,-5


7

vec1

vec2


matr

21,22,23,24,28,27,26,25

40,50,-40,-50,20,30,-20,-30

5,6,-8,-7,7,8,-6,-5,1,2,-4,-3,3,4,-2,-1


8

vec1

vec2


matr

28,27,26,25,21,22,23,24

20,30,-20,-30,40,50,-40,-50

-8,-7,3,4,-6,-5,1,2,-4,-3,7,8,-2,-1,5,6


9

vec1

vec2


matr

31,32,33,34,38,37,36,35

50,60,-50,-60,70,80,-70,-80

-4,-3,7,8,-2,-1,5,6,-8,-7,3,4,-6,-5,1,2


10

vec1

vec2


matr

38,37,36,35,31,32,33,34

70,80,-70,-80,50,60,-50,-60

-2,-1,5,6,-8,-7,3,4,-4,-3,7,8,-6,-5,1,2


11

vec1

vec2


matr

1,3,5,7,9,11,13,15

20,30,40,50,-50,-40,-30,-20

-1,-2,-3,-4,4,3,2,1,-1,-2,-3,-4,4,3,2,1


12

vec1

vec2


matr

9,11,13,15,1,3,5,7,

-50,-40,-30,-20,20,30,40,50

4,3,2,1, -1,-2,-3,-4,-1,-2,-3,-4,4,3,2,1


13

vec1

vec2


matr

28,27,26,25,21,22,23,24

20,-20,30,-30,40,-40,50,-50,

1,2,-4,-3,3,4,-2,-1,5,6,-8,-7,7,8,-6,-5


14

vec1

vec2


matr

31,32,33,34,35,36,37,38

50,-50,60,-60,70,-70,80,-80

5,6,-8,-7,7,8,-6,-5,1,2,-4,-3,3,4,-2,-1,


15

vec1

vec2


matr

1,2,3,4,8,7,6,5

-1,-2,-3,-4,-8,-7,-6,-5

-1,2,-3,4,-4,3,-2,1,-5,6,-7,8,-8,7,-6,5


16

vec1

vec2


matr

18,17,16,15,11,12,13,14

-10,-20,10,20,-30,40,-30,40

1,2,-4,-3,3,4,-8,-7,7,8,-6,-5,-2,-1,5,6


17

vec1

vec2


matr

8,7,6,5,1,2,3,4

30,40,-30,-40,10,20,-10,-20



-1,-2,-3,-4,8,7,6,5,-5,-6,-7,-8,4,3,2,1


База данных защищена авторским правом ©shkola.of.by 2016
звярнуцца да адміністрацыі

    Галоўная старонка