15278

Засвоїти способи адресування операндів в мікропроцесорі і8086

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

Информатика, кибернетика и программирование

Лабораторна робота № 3 Тема: Основи програмування мовою Асемблер. Мета роботи: Засвоїти способи адресування операндів в мікропроцесорі і8086. Набути навичок з використання різних способів адресування операндів при складанні програм мовою асемблера. Ко...

Украинкский

2013-06-11

161 KB

12 чел.

Лабораторна робота № 3

Тема: Основи програмування мовою Асемблер.

Мета роботи: Засвоїти способи адресування операндів  в мікропроцесорі і8086. Набути навичок з використання різних способів адресування операндів при складанні програм мовою асемблера.

  1.  Короткі теоретичні відомості

  1.  Адресування операндів в мікропроцесорах

МП підтримує наступні чотири основні режими адресування операндів:

  1.  Пряме адресування. У цьому режимі 2 та 3 байти команд містять адресу операнду.
  2.  Регістрове адресування. У мнемоніці команди вказується позначення РЗП, у якому знаходиться операнд.
  3.  Безпосереднє адресування. У цьому режимі в команді вказується 8 або 16-бітовий операнд у другому або у другому та третьому байтах команди. Операнд у цьому випадку знаходиться у пам’яті  команд.
  4.  Непряме регістрове адресування. У команді вказується регістр (або пара регістрів), який містить адресу комірки пам’яті.

Непряме регістрове адресування має різновиди: базове, індексне і базово-індексне.

Базове адресування. Ефективна адреса операнду EA визначається сумою вмісту одного з базових регістрів BX або BP і зміщенням у вигляді числа. В окремому випадку зміщення може не бути.

Індексне адресування. Ефективна адреса операнду EA визначається сумою вмісту одного з індексних регістрів SI або DI і зміщення у вигляді числа.

Базово-індексне адресування. Ефективна адреса операнду EA визначається сумою вмісту одного з базових регістрів BX або BP, вмісту одного з індексних регістрів SI або DI і зміщення у вигляді числа.

Зауважимо, що зміщення в розглянутих різновидах адресування не є тотожним зміщенню відносно початку сегменту. Останній задається ефективною адресою операнду EA.

З подальшим розвитком МП був здійснений перехід до 32-розрядного адресування в 32-розрядних МП. Ці МП також підтримують і 16-розрядне адресування, чим забезпечується програмна сумісність МП різних поколінь.

Адресування 32-розрядних МП ілюструється рис.1 і табл.1.

Як бачимо з табл.1, при звертаннях до пам'яті ефективна адреса ЕА обчислюється за формулою

EA = Base +Index* Scale +Disp

з використанням наступних компонентів:

-  Зміщення (Dіsplacement або Dіsp) - 8, 16 або 32-бітне число, що включене у команду;

- База (Base) - вміст базового регістру. Використовується для вказівки на початок деякого масиву;

- Індекс (Іndex) - вміст індексного регістру. Використовується для вибору елемента масиву;

- Масштаб (Scale) - множник (1, 2, 4 або 8), зазначений у коді інструкції. Вказує на розмір елемента масиву і доступний тільки при 32-бітному адресуванні.

ЕА

Рисунок 1 – Обчислення ефективної адреси

Таблиця 1 – Обчислення ефективної адреси ЕА

Адресування

Адреса

Пряме

EA = Disp

Непряме регістрове

EA = Base

Базове

EA = Base +Disp

Індексне

EA = Index +Disp

Масштабоване індексне

EA = Index* Scale +Disp (*)

Базово-індексне

EA = Base +Index

Масштабоване базово-індексне

EA = Base +Index* Scale (*)

Базово-індексне зі зміщенням

EA = Base +Index +Disp (*)

Масштабоване базово-індексне зі зміщенням

EA = Base +Index* Scale +Disp

(*)- масштабування індексу можливе тільки при 32-бітному  адресуванні.

  1.  Адресування операндів в МП і8086

В подальшому ми будемо працювати з емулятором МП і8086, який не підтримує 32-бітове адресування, тому нижче розглянемо варіанти адресування операндів цього МП.

Для звертання до запам’ятовуючого пристрою (ЗП) використовують чотири регістри: BX, SI, DI, BP. Комбінації вказаних регістрів утворюють різні варіанти непрямого регістрового адресування комірок пам’яті ЗП. В табл.2 приведені допустимі варіанти формування адрес МП і8086 при звертаннях до ЗП. Запис адреси комірки пам’яті в командах асемблера подається у квадратних дужках, наприклад команда MOV [BX], 0A9C5h забезпечує пересилання числа 0A9C5h в комірку пам’яті, адреса якої вказана в регістрі BX.

Таблиця 2.2 Допустимі варіанти формування адрес при звертаннях до ЗП

[BX + SI]
[BX + DI]
[BP + SI]
[BP + DI]

[SI]
[DI]
d16 (variable offset only)
[BX]

[BX + SI + d8]
[BX + DI + d8]
[BP + SI + d8]
[BP + DI + d8]

[SI + d8]
[DI + d8]
[BP + d8]
[BX + d8]

[BX + SI + d16]
[BX + DI + d16]
[BP + SI + d16]
[BP + DI + d16]

[SI + d16]
[DI + d16]
[BP + d16]
[BX + d16]


d8 – 8-бітове знакове безпосереднє зміщення (наприклад: 22, 55h, -1, і ін...)
d16 - 16-бітове знакове безпосереднє зміщення (наприклад: 300, 5517h, -259, і ін...).

 Зміщення може бути записане як всередині квадратних дужок так і поза ними. В обох випадках асемблер генерує однаковий код.
Зміщення є знаковою величиною, тому воно може бути як додатним так і від’ємним.

Розглянемо приклад, нехай DS = 100, BX = 30, SI = 70 і вибраний наступний спосіб адресування [BX + SI] + 25. У даному випадку фізична адреса буде визначатися як 100 * 16 + 30 + 70 + 25 = 1725.
Зауважимо, що регістр DS за замовчуванням використовується для всіх способів адресування, представлених у табл..2.2, окрім тих, де задіяний регістр  BP, який
 використовується в парі з сегментним регістром SS.

Нижче наведений зручний для запам’ятовування узагальнений алгоритм формування різних способів адресування комірок пам’яті:   

Для правильного формування адрес необхідно з кожної колонки взяти по одному елементу, при цьому одна чи дві колонки з трьох можуть пропускатися. Як бачимо з наведеного алгоритму, регістри BX і BP ніколи не використовуються разом. Не використовуються разом і регістри SI та DI.

Нижче наведені приклади правильного формування адрес комірок запам’ятовуючих пристроїв:

[BX+5]     ,     [BX+SI]     ,     [DI+BX-4]

Величину в сегментному регістрі (CS, DS, SS, ES) називають сегментом, а величину в регістрі загального призначення (BX, SI, DI, BP) називають зміщенням. Наприклад, якщо регістр DS містить число 1234h, а регістр SI містить число 7890h, то адреса може бути представлена записом 1234:7890. Фізична адреса у цьому випадку буде визначатися як

1234h * 10h + 7890h = 19BD0h,

де 10h = 16.

Зауважимо, що добавляння нуля праворуч у шістнадцятковому числі означає множення числа на 16, наприклад, 7h = 7, а 70h = 112.

  1.  Постановка завдання

  1.  Використовуючи середовище емулятора МП і8086, створити і налагодити проект асемблерної програми відповідно до індивідуального завдання за нижченаведеним шаблоном програми:

ORG 100h ;директива, що вказує на початок розташування програми.

MOV R1, C1H ;запис числа C1H в регістр R1.

MOV R2, R1 ;копіювання вмісту регістра R1 в регістр R2.

MOV [C2H], R1;копіювання вмісту регістра R1 в комірку пам’яті за прямою адресою С2Н.

MOV R14, [C2H] ;копіювання вмісту комірки пам’яті, пряма адреса якої C2H, в регістр R14.

MOV BX, C3H ;запис числа C3H в регістр BX.

MOV [BX], C4H ;запис числа C4H в комірку пам’яті з непрямою адресою, що вказана в регістрі BX.

MOV R3, [BX] ;копіювання вмісту комірки пам’яті з непрямою адресою, що вказана в регістрі BX, в регістр R3.

MOV R4, C5H;запис числа C5H в регістр R4.

MOV [R4], R3;копіювання вмісту регістра R3 в комірку пам’яті з непрямою адресою, що вказана в регістрі R4.

MOV R5, [R4] ;копіювання вмісту комірки пам’яті з непрямою адресою, що вказана в регістрі R4, в регістр R5.

MOV R6, 0H ;очищення регістру R6.

MOV R7, R6 ;очищення регістру R7.

MOV R8, R6 ;очищення регістру R8.

MOV R9, R6 ;очищення регістру R9.

MOV R10, R6 ;очищення регістру R10.

MOV BX, C6H ;запис числа C6H в регістр BX.

MOV R11, C7H ;запис числа C7H в регістр R11.

MOV [BX+R11], C8H;запис числа C8H в комірку пам’яті з непрямою адресою, що задана парою регістрів BX і R11.

MOV AX, [BX+R11] ;копіювання вмісту  комірки пам’яті з непрямою адресою, що задана парою регістрів BX і R11.

MOV [BX+R11+C9H], C10H;запис числа C10H в комірку пам’яті з непрямою адресою, що задана парою регістрів BX, R11 і числовим зміщенням C9H.

MOV R12, [BX+R11+ C9H] ;копіювання вмісту  комірки пам’яті з непрямою адресою, що задана парою регістрів BX, R11 і числовим зміщенням C9H, в регістр R12.

MOV BX, OFFSET VAR1 ;завантаження в регістр BX адреси комірки пам’яті, в якій записана змінна VAR1.

MOV [BX], C11H ;присвоєння змінній VAR1 нового значення C11H.

MOV R13, VAR1 ;копіювання змінної VAR1 в регістр R13.

RET

VAR1 DW 0H ;опис змінної VAR1.

END ;закінчення програми.

  1.  Використовуючи середовище емулятора скласти лістинг програми (табл..1)

Таблиця 1 Лістинг програми

Зміщення

Код (Hex)

Мнемокод команди

К-сть байт

Коментар

100

B8

MOV AX, 0000h

3

Код операції – запис числа 0000h в регістр AX

101

00

Молодший байт числа

102

00

Старший байт числа

103

8B

MOV BX, AX

2

Код операції – копіювання вмісту одного регістру (AX) в інший регістр (BX)

104

D8

Вказує на регістри, між якими відбувається пересилання даних

  1.  Використовуючи покроковий режим роботи емулятора, проаналізувати хід виконання програми. Заповнити табл..2 результатів досліджень.

  1.  Варіанти індивідуальних завдань

  1.  Варіанти індивідуальних завдань до даної лабораторної роботи наведені у табл.. 3.

  1.  Методичні вказівки

  1.  Увійти в середовище емулятора Emu8086.
    1.  Створити новий проект типу “com” під власним іменем.
    2.  У створеному проекті набрати текст програми відповідно до п.2.1 і індивідуального завдання .
    3.  Скомпілювати створений проект.
    4.  Проаналізувати повідомлення про помилки, якщо такі мають місце. Записати повідомлення у звіт до лабораторної роботи. Пояснити причини виникнення помилок і вказати шляхи їх усунення.
    5.  Після успішного завершення процедури компілювання проекту перейти до аналізу роботи створеної програми відповідно до п.п.2.2 і 2.3, використовуючи покроковий режим роботи емулятора.
    6.  В процесі аналізу роботи програми контролювати і записувати зміни вмісту регістрів, що приймають участь в роботі програми.

  1.  Зміст звіту

  1.  Назва теми.
    1.  Мета роботи.
    2.  Індивідуальне завдання.
    3.  Лістинг програми відповідно до п.2.2 з відповідними коментарями.
    4.  Результати досліджень регістрів відповідно до п.2.3.
    5.  Відповіді на контрольні запитання.
    6.  Висновки, в яких дати характеристику основних способів адресування операндів в МП.

  1.  Контрольні запитання

  1.  Назвіть основні способи адресування операндів в мікропроцесорах.
    1.  Дайте характеристику прямого способу адресування операндів в МП.
    2.  Дайте характеристику прямого регістрового способу адресування операндів в МП.
    3.  Дайте характеристику безпосереднього способу адресування операндів в МП.
    4.  Дайте загальну характеристику непрямого регістрового адресування операндів в МП.
    5.  Дайте пояснення непрямого базового адресування операндів в МП.
    6.  Дайте пояснення непрямого індексного адресування операндів в МП.
    7.  Дайте пояснення непрямого базово-індексного адресування операндів в МП.


Таблиця 2 Результати досліджень

№ кроку

IP

Команда

CS

SS

SP

BP

SI

DI

DS

ES

BX

CX

AX

DX

Коментар

H

L

H

L

H

L

H

L

0

100

MOV AX, 0000H

0B56

0B56

FFFE

0000

0000

0000

0B56

0B56

00

00

00

17

00

00

00

00

очистка регістру AX

1

103

MOV BX, AX

0B56

0B56

FFFE

0000

0000

0000

0B56

0B56

00

00

00

17

00

00

00

00

очистка регістру BX

Таблиця 3 Індивідуальні завдання до лабораторної роботи №3

№ варіанту

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

C1h

C2h

C3h

C4h

C5h

C6h

C7h

C8h

C9h

C10h

C11h

1

AX

CX

BX

SI

DX

AX

BX

CX

DX

SI

DI

BX

AX

DX

A0B1

200

210

C2D3

220

230

02

E4F5

0A

1001

01

2

BX

DX

CX

SI

AX

BX

AX

CX

DX

SI

DI

CX

BX

AX

B1C2

240

250

D3E4

260

270

04

F5A0

08

2002

02

3

CX

AX

DX

SI

BX

CX

AX

BX

DX

SI

DI

DX

CX

BX

C2D3

280

290

E4F5

2A0

2B0

06

A0B1

06

3003

03

4

DX

BX

AX

SI

CX

DX

AX

BX

CX

SI

DI

AX

DX

CX

D3E4

2C0

2D0

F5A0

2E0

2F0

08

B1C2

04

4004

04

5

AX

CX

BX

DI

DX

AX

DX

CX

BX

DI

SI

BX

AX

DX

A0B1

300

310

C2D3

320

330

02

E4F5

0A

5005

05

6

BX

DX

CX

DI

AX

BX

DX

CX

AX

DI

SI

CX

BX

AX

B1C2

340

350

D3E4

360

370

04

F5A0

08

6006

06

7

CX

AX

DX

DI

BX

CX

DX

BX

AX

DI

SI

DX

CX

BX

C2D3

380

390

E4F5

3A0

3B0

06

A0B1

06

7007

07

8

DX

BX

AX

DI

CX

DX

CX

BX

AX

DI

SI

AX

DX

CX

D3E4

3C0

3D0

F5A0

3E0

3F0

08

B1C2

04

8008

08

9

AX

CX

BX

SI

DX

AX

CX

DX

BX

SI

DI

BX

AX

DX

A0B1

200

210

C2D3

220

230

02

E4F5

0A

9009

09

10

BX

DX

CX

SI

AX

BX

CX

DX

AX

SI

DI

CX

BX

AX

B1C2

240

250

D3E4

260

270

04

F5A0

08

A00A

0A

11

CX

AX

DX

SI

BX

CX

BX

DX

AX

SI

DI

DX

CX

BX

C2D3

280

290

E4F5

2A0

2B0

06

A0B1

06

B00B

0B

12

DX

BX

AX

SI

CX

DX

BX

CX

AX

SI

DI

AX

DX

CX

D3E4

2C0

2D0

F5A0

2E0

2F0

08

B1C2

04

C00C

0C

13

AX

CX

BX

DI

DX

AX

BX

CX

DX

DI

SI

BX

AX

DX

A0B1

300

310

C2D3

320

330

02

E4F5

0A

D00D

0D

14

BX

DX

CX

DI

AX

BX

AX

CX

DX

DI

SI

CX

BX

AX

B1C2

340

350

D3E4

360

370

04

F5A0

08

E00E

0E

15

CX

AX

DX

DI

BX

CX

AX

BX

DX

DI

SI

DX

CX

BX

C2D3

380

390

E4F5

3A0

3B0

06

A0B1

06

F00F

0F

16

DX

BX

AX

DI

CX

DX

AX

BX

CX

DI

SI

AX

DX

CX

D3E4

3C0

3D0

F5A0

3E0

3F0

08

B1C2

04

0110

10


  1.   Що розуміють під ефективною адресою операнду EA?
    1.  Дайте пояснення сегменту і зміщення.

  1.  Джерела інформації

  1.  Ю.І. Якименко, Т.О. Терещенко, Є.І. Сокол та ін. Мікропроцесорна техніка: Підручник. – Київ. – ІВЦ «Видавництво «Політехніка». – 2004. – 439 с.
    1.  Юров В., Хорошенко С. Assembler: учебный курс – СПб: Питер Ком, 1999. – 672 с.


База

(Base)

Зміщення

(Disp)

ндекс

(Index)

Множник

(Scale) 1, 2, 4, 8

*

Σ


 

А также другие работы, которые могут Вас заинтересовать

48284. ИНФОРМАЦИОННЫЕ СИСТЕМЫ В АСУТП 295.5 KB
  Общие понятия и структура SCDсистем Определение и общая структура SCD Функциональная структура SCD Особенности SCD как процесса управления
48285. ПРЕДМЕТ И МЕТОД ИСТОРИИ ПОЛИТИЧЕСКИХ И ПРАВОВЫХ УЧЕНИЙ 763.5 KB
  История политической и правовой мысли позволяет понять как в борьбе и столкновениях различных воззрений и позиций одновременно развивалось познание природы государства и права углублялись представления о свободе справедливости и праве законе и законности о надлежащем общественном и государственном устройстве о правах и свободах человека формах и принципах взаимоотношений личности и власти и т. Плюрализм же не затрагивая собственные внутренние убеждения личности требует от неё лишь одного: уважения и чужих мнений признания и за...
48286. ІСТОРІЯ ЕКОНОМІКИ ТА ЕКОНОМІЧНОЇ ДУМКИ 1.32 MB
  Історія економіки та економічної думки. доцент кафедри економічної теорії Дніпропетровської державної фінансової академії С. доцент кафедри економічної теорії Дніпропетровської державної фінансової академії П.
48287. Конституционно-правовой статус субъектов РФ 169.5 KB
  Федеративное устройство в Российской Федерации закрепляется в гл. 65 Конституции в составе Российской Федерации находятся субъекты Российской Федерации и ст. 65 закрепляет конкретный численный видовой и именной состав субъектов Российской Федерации на момент принятия настоящей Конституции. В Российской Федерации 89 субъектов в том числе 21 республика 6 краев 49 областей 2 города федерального значения 1 автономная область и 10 автономных округов.
48288. Компьютерный анализ и синтез электронных устройств 2.33 MB
  Рассмотрена методика моделирования электронных устройств при помощи программ схемотехнического анализа и особенности использования для этой цели пакетов MicroCPVII VIII. В нем приведены также примеры моделирования электронных устройств различного класса включая и цифровые схемы. Схемотехническое моделирование с помощью MicroCP 7. Система моделирования MicroCp 6.
48289. Анализ деятельности торговых предприятий 183 KB
  Анализ ликвидности банка. Общая оценка факторов прибыльности банка; Анализ основных коэффициентов эффективности деятельности банка. Экономические нормативы регулирования деятельности банка
48290. Сущность маркетинга и его современная концепция 1.04 MB
  Главной проблемой стала постоянная организация продвижения товара на рынок. Котлеру существуют следующие альтернативные концепции на основе которых коммерческие и некоммерческие организации осуществляют маркетинговую деятельность: концепция производства концепция товара сбытовая концепция традиционная маркетинговая концепция а также предложенная в 80 х годах шведскими учеными концепция маркетинга отношений рис. Дело в том что от тоталитарной экономической системы которая опиралась на отрицание любого рыночного отношения в стране...
48291. ЗВІТНІСТЬ ПІДПРИЄМСТВА 27 KB
  Облік і аудит заочної форми навчання і слухачів другої вищої освіти спеціальності 7.050106 – Облік і аудит Харків ХНАМГ 2012 Конспект лекцій з дисципліни Звітність підприємства для студентів 5 курсу за напрямом підготовки 6.030509 Облік і аудит заочної форми навчання і слухачів другої вищої освітиспеціальності 7.050106 – Облік і аудит А.