
Архитектура компьютеров(3 курс 2 семестр) Савченко І.О. / Лабораторна робота №3 Дослідження способів адресації операнд
.docx
Лабораторна робота №3
Дослідження способів адресації операнд
1.Мета роботи: досдідити різні способи адресації,які використовуються в сучасних комп`ютерах
2.Завдання:
Визначати наступні дані:
Число(V),що дорівнює номеру студента по журналу
Число(t),що дорівнює даті виконання роботи
Число(n), дорівнює номеру комп`ютера студента
Розмір змінних для ппарних чисел-2 байти,для непарних-1 байт.
2.Скласти програму,яка включає 7 блоків(кожен блок реалізує окремий спосіб
адресації).Перед кожним блоком в коментарі вказати спосіб адресації.При
розробці блоків врахувати наступні рекомендації:
-для регістрації адресації записати в регістр число V.
-число при безпосередній адресації повинно дорівнювати Vh.
-абсолютна адреса при прямій адресації повинна дорівнювати Vh.
-при опосередньо регістровій адресації в змінній cell занести V.
-при опосередковано-регістровй адресації зі зміщенням визначати
array,що складається з 10 елеметнів розміром 1 байт
кожний,починаючи з числа V,через крок 1.В регістрі bx занести номер
комп`ютера.
-при базово-індексній адресації визначити той самий масив,що й
в попередньому способі адресації,а в регістр SI занести номер
комп`ютера.
- при базово-індексній адресації зі зміщенням занести число V в
регістр ВХ,число n в регістр SI,а зміщення прийняти рівним числу t.
Рядок визначтити наступний – «Київський коледж комп`ютерних технологій та економіки».
3.Виконати асемблювання та комповку складеної програми за допомогою програм Tasm і Tlink.
4.За допомогою програми Debug зробити покрокове виконання програми,результати зафіксувати у вигляді таблиці.
5.Зробити детальний аналіз виконання кожного блоку програми і відповідно-кожного способу адресації.Результати аналізу привести в звіт та надати рекомендації по застосуванню кожного способу адресації.
3.Хід роботи
1.Визначаємо дані:
V=2
t=28
n=10
model small
.data
n dw 5
v dw 3
t dw 20
cell dw?
Array dw 3,4,5,6,7,8,9,10,11,12
Sins db “Група К-684-31”
.code
begin:
mov ax,@data
mov ds,ax
mov bx,v
mov ax,bx
xor ax,ax
mov ah,21h
xor ax,ax
mov si,offset cell
mov ax,[si]
xor ax,ax
mov bx,n
mov ax,array[bx]
xor ax,ax
mov bx,offset array
mov si,n
mov ax,[bx][si]
xor ax,ax
mov bx,v
mov si,n
mov
dl,sims[bx][si]
xor dx,dx
mov ax,4c00h
int 21h
end begin
3.Виконуємо асемблювання та компоновку складенної програми за допомогою програм Tasm,Tlink
Асемблювання:
C:\tasm lab_03
Turbo Assembler Version 4.0 Copyrigh © 1988,1993 Borland International
Asswmbling file: lab_03.asm
Error messages:None
Warning messages:None
Passes:1
Remaning memory:463K
Компунування:
C:\tlink lab_03
Turbo Link Version 4.01 Copyrigh © 1991 Borland International
Warning: No stack
4.Таблиця
За допомогою програми Debug я зробив покрокове виконання програми,результати зафіксовані у таблиці.
C:\afgebug lab_03
№ |
Команда |
Регістр |
Значення
|
|
До |
Після |
|||
1 |
mov ax,6757 |
ax |
0000 |
6757 |
2 |
mov dx,ax |
dx |
0000 |
6757 |
3 |
mov bx,[0008] |
bx |
0000 |
F01D |
4 |
mov ax,bx |
ax |
6757 |
F01D |
5 |
xor ax,ax |
ax |
F01D |
0000 |
6 |
mov ah,21 |
ax |
0000 |
2100 |
7 |
xor ax,ax |
ax |
2100 |
0000 |
8 |
mov dl,[0021] |
dx |
6757 |
67FF |
9 |
xor dx,dx |
dx |
67FF |
0000 |
10 |
mov si, 000c |
si |
0000 |
000C |
11 |
mov ax,[si] |
ax |
0000 |
2C30 |
12 |
xor ax,ax |
ax |
2C30 |
0000 |
13 |
mov bx,[0006] |
bx |
F01D |
FEF0 |
14 |
xor ax,ax |
ax |
0000 |
0000 |
15 |
mov bx,000e |
bx |
FEF0 |
000E |
16 |
mov si,[0006] |
si |
000C |
FEF0 |
17 |
mov ax,[bx+si] |
ax |
0000 |
0000 |
18 |
mov bx,[0008] |
bx |
000E |
F01D |
19 |
mov si,[0006] |
si |
FEF0 |
FEF0 |
20 |
mov dl[bx+si+002] |
dx |
0000 |
0000 |
21 |
int 21 |
|
|
Контрольні питання:
1. Операнд аргумент операції; дані, які обробляються командою; граматична конструкція, яка позначає вираз, що задає значення аргументу операції; іноді операндом називають місце або позицію в тексті, де має стояти аргумент операції.
2. Абсолютна (пряма), Безпосередня, Регістрова, Непряма регістрова, Непряма, Масштабування (індексна регістрова непряма), Непряма регістрова з автоінкрементом, Непряма регістрова з автодекрементом.
3. При виконанні безпосередньої адресації з`являється залежність кодів команд від даних,що вимагає зміни програми при кожній зміні безпосереднього операнда.
4.Зменшення довжини команди скорочує час виконання і економить пам`ять.Межею зменшення є безадресні команди,які можливі при використанні стекової адресації.
5. При сторінковій адресації адресний простір пам'яті розбивається на сторінки рівного розміру. Сторінка має початкову адресу, яка використовується в якості бази та зберігається в спеціальному регістрі, який називається регістром адреси сторінки. В адресній частині команди вказується зміщення всередині сторінки, яке є молодшою частиною виконавчої адреси. Тобто виконавча адреса формується шляхом приєднання (конкатенації) зміщення з адресної частини команди до початкової адреси.
6. Стекова адресація-це зменшення довжини команди скорочує час виконання і економить пам'ять. Межею зменшення є безадресні команди, які можливі при використанні стекової адресації. Стекова адресація використовується в безадресних командах при роботі з масивами даних.
7. Сторінкова адресація являє собою адресний простір пам'яті який розбивається на сторінки рівного розміру. Сторінка має початкову адресу, яка використовується в якості бази та зберігається в спеціальному регістрі, який називається регістром адреси сторінки.
Висновок:В ході цієї лабораторної роботи мною було досліджено способи адресації,які використовуються в сучасних комп`ютерах.