Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Лабораторна робота 4. Тема: Команди зсуву та циклічного зсуву



Тема: Команди зсуву та циклічного зсуву

Зміст завдання

1) Нехай у регістрі EAX утримується шістнадцяткове число (для кожного варіанта це число утримується в таблиці 2.3, що відповідає Вашому варіантові).

Надалі в кожному пункті завдання під шістнадцятковим числом мається на увазі саме це число. Запишіть (у двійковій і шістнадцятковій системах числення), який буде результат (зміст регістра EAX і прапор переносу CF) виконання операції SHR AH,1

Запишіть результати послідовного виконання цієї операції ще 3 рази.

2) Нехай у регістрі EAX утримується шістнадцяткове число.

Запишіть результат виконання операції SHR AH,3

3) Нехай у регістрі EAX утримується шістнадцяткове число.

Запишіть результат виконання операції SAR AH,3

4) Нехай у регістрі EAX утримується шістнадцяткове число.

Запишіть результат виконання операції SHL AX,3

5) Нехай у регістрі EBX утримується шістнадцяткове число. Запишіть результат виконання операції ROR BX,1

Запишіть результати послідовного виконання цієї операції ще 15 разів.

6) Нехай у регістрі EBX утримується шістнадцяткове число.

Запишіть результат виконання операції ROR EBX,5

7) Нехай у регістрі EDX утримується шістнадцяткове число. Запишіть результат виконання операції RCL EDX,1

Зробіть припущення про те, який буде результат, якщо цю інструкцію виконати 33 рази.

8) Нехай у регістрі EDX утримується шістнадцяткове число.

Запишіть результат виконання операції RCR EDX,7

Таблиця 2.3. Варіанти завдань до лабораторної роботи 4

Варіант Шістнадц. число Варіант Шістнадц. число Варіант Шістнадц. число
  7BD48765h   E185E6D4h   FAD192D1h
  F14C987Fh   0CC5A75Ah   62DB9E84h
  19B1A54Eh   E18BB43Ah   BD10BA5Ch
  DD41F341h   9BD5CA7Bh   8CADC973h
  EDA1FС34h   43F1D261h   1AC5DB42h
  80EA9A37h   BDE09EC4h   938F8B75h
  77F5B653h   FDF584FDh   99FAAF6Eh
  CD13CE54h   AFFA417Ah   5AC197D4h
  932EA269h   E0EC8A4Fh   E1F4D85Bh
  A0B4D634h   74ABC4F5h   D6E1B9DAh

Теоретичні відомості до виконання лабораторної роботи

Команди зсуву і циклічного зсуву являють собою частину логічних можливостей комп'ютера і мають наступні властивості:

1) обробляють байт або слово;

2) слово можуть зрушувати на величину до 16 біт і до 8 біт для байта.

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

Команди зсуву

При виконанні команд зсуву прапор CF завжди містить значення останнього висунутого біта.

SHR (S hift R ight) Логічний (беззнаковий) зсув вправо

CF

SHL (S hift L eft) Логічний (беззнаковий) зсув вліво

CF 0

Команди зсуву часто застосовують для ділення і множення на 2, що ефективніше використання команд множення або ділення. Якщо при множенні відбувається переповнення або ділення не здійснюється без остачі, то встановлюється прапор переносу CY.

Приклад 1: SHR DL,1

Ця команда зрушує вміст регістра DL вправо на 1 біт. Висунутий у результаті один біт попадає в прапор CF, а самий лівий біт регістра DL заповнюється нулем.

DL CF

 
 
B7h=183(10), NC до виконання

інструкції

 
 
 
після виконання інструкції

5Bh=91(10), CY (183:2=91 і залишок 1)

Якщо виконати інструкцію ще кілька разів, одержимо:

0 0 1 0 1 1 0 1 1 2Dh=45(10), CY (91:2=45 і залишок 1)

0 0 0 1 0 1 1 0 1 16h=22(10), CY (45:2=22 і залишок 1)

0 0 0 0 1 0 1 1 0 0Bh=11(10), NC (22:2=11 без залишку)

і т.д.

Після 8 зрушень у регістрі DL з'явиться 00h.

Приклад 2: SHL AX,CL

Якщо в регістр CL записати значення 03, то ця команда зрушує вміст регістра AX на 3 біти вліво. Праві 3 біти заповнюються нулями. (Рівносильне множенню на 23=8)

CF AX

0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 до виконання команди

1 1 0 0 0 1 0 1 0 1 1 0 1 1 0 0 0 після виконання команди

Команда SAR – арифметичний зсув вправо

Значення

знакового 0 або 1 CF

розряду

SAR відрізняється від SHR тим, що для заповнення лівого біта використовується знаковий біт. Таким чином, позитивні і негативні величини зберігають свій знак.

Приклад 3: SAR DH,1

DH CF

 
 
B5h=-75(10), NC до виконання

інструкції

 
 
 
після виконання інструкції

DAh=-38(10), CY (-75 на 2 без остачі

не поділяється)

Якщо виконати інструкцію ще кілька разів, одержимо:

1 1 1 0 1 1 0 1 0 -19

1 1 1 1 0 1 1 0 1 -10

1 1 1 1 1 0 1 1 0 -5 і т.д.

Приклад 4: SAR DL,1

DL CF

 
 
75h=117(10), NC до виконання

інструкції

 
 
 
після виконання інструкції

3Ah=58(10), CY

Команди циклічного зсуву

Циклічний зсув – операція зсуву, при якій висунутий біт займає розряд, що звільнився.

ROR (R otate R ight) Циклічний зсув вправо

ROL (R otate L eft) Циклічний зсув вліво

RCR (R otate C arry R ight) Циклічний зсув вправо з переносом

CF

RCL (R otate C arry L eft) Циклічний зсув вліво з переносом

CF

Приклад 5: RCL BL,1

Ця інструкція циклічно зрушує байт у BL уліво на 1 біт через прапор переносу. Крайній лівий біт зрушується в прапор переносу, а біт із прапора переносу міститься в крайню праву позицію. Інші біти зрушуються вліво.


 
 

CF BL

CF BL

1 0 1 1 0 1 0 1 1 6Bh до виконання інструкції

0 1 1 0 1 0 1 1 1 D7h після виконання інструкції

Якщо виконати зазначену команду ще раз, одержимо:

1 1 0 1 0 1 1 1 0

1 0 1 0 1 1 1 0 1 і т.д.

Приклад 6: RCR BL,1

Ця інструкція циклічно зрушує байт у BL вправо на 1 біт через прапор переносу. Крайній правий біт зрушується в прапор переносу, а біт із прапора переносу міститься в крайню ліву позицію. Інші біти зрушуються вправо.

               
   
       
 

BL CF

 
 

BL CF

0 1 1 0 1 0 1 1 0 6Bh до виконання інструкції

0 0 1 1 0 1 0 1 1 35h після виконання інструкції

Приклад 7: ROR BL,1

Ця інструкція переносить правий одиничний біт регістра BL у ліву позицію, що звільнилася.

 


6Bh до виконання інструкції


1 0 1 1 0 1 0 1 B5h після виконання інструкції

Приклад 8: ROL BL,1

Ця інструкція переносить лівий біт регістра BL у праву позицію, що звільнилася.

 


6Bh до виконання інструкції


1 1 0 1 0 1 1 0 B6h після виконання інструкції

Приклад 9: ROR BL,CL

Якщо CL=3, то відбувається циклічне зрушення вправо на 3 біти.

0 1 1 0 1 0 1 1 6Bh до виконання інструкції

0 1 1 0 1 1 0 1 6Dh після виконання інструкції

2.13 Питання з підготовки до модульного контролю

1. Структура ЕОМ.

2. Типи команд ЕОМ.

3. Регістри мікропроцесора Intel 8086.

4. Операційна система MS-DOS.

5. Налагоджувач DEBUG.

6. Команди зсуву та циклічного зсуву.

7. Типи комп’ютерних систем.

8. З’єднання комп’ютерних систем.


МОДУЛЬ 3. ПОБУДОВА ОСНОВНОЇ ПАМ’ЯТІ

3.1 Класифікація пристроїв пам ' яті. Основні характеристики

Пам'яттю ЕОМ називається сукупність пристроїв, що служать для запам'ятовування, зберігання і видачі інформації. Окремі пристрої, що входять в цю сукупність, називають пристроями, що запам'ятовують (ЗП). ЗП складаються з величезного числа елементів, кожний з яких може знаходитися в одному з двох станів, що кодуються двійковою цифрою 0 або 1. Коли йдеться про принцип побудови пристрою пам'яті, говорять про ЗП, у тому випадку, коли підкреслюється логічна функція, що виконується цим пристроєм пам'яті, то говорять про пам'ять.

Зверненням до пам'яті називається операція по занесенню одиниці інформації в пам'ять – запис, або по вибірці одиниці інформації з пам'яті - зчитування. Для пристроїв різного типа такою одиницею може бути байт, слово, блок даних і т.п.

Найважливіші характеристики пристроїв, що запам'ятовують:

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

Питома місткість - відношення місткості ЗП до його фізичного об'єму.

Швидкодія пам'яті - визначається тривалістю операції звернення до пам'яті.

Час циклу пам'яті (час звернення) при зчитуванні:

tобрсчит = tдостсчит +tсчит+ tрег

де:

tдостсчит - час доступу, проміжок часу між початком операції звернення до моменту, коли стає можливим доступ до даної одиниці інформації;

tсчит - тривалість фізичного процесу зчитування;

У деяких пристроях пам'яті зчитування інформації супроводжується її руйнуванням і цикл звернення повинен містити операцію відновлення (регенерації) інформації на колишньому місці в пам'яті.

tрег - час, що витрачається на регенерацію зруйнованої при зчитуванні інформації (t = 0, якщо ЗП реалізує зчитування без руйнування).

Час циклу пам'яті при записі:

tобрзап = tдостзап+tзап+ tрег

де:

tдостзап - час доступу, проміжок часу від моменту між початком звернення до моменту, коли стає можливим доступ до запам’ятовуючих елементів, в які проводиться запис;

tзап - час занесення інформації, тобто зміни стану запам’ятовуючих елементів.

Зазвичай tдостсчит = tдостзап = tдост

Цикл звернення до пам'яті - це максимальне значення з часу циклу пам’яті при запису та при зчитуванні.

Залежно від операцій звернення, що реалізовані в пам'яті розрізняють:

а) пам'ять з довільним зверненням, що допускає і зчитування і запис даних. ОЗП - що оперативний запам'ятовуючий пристрій, RAM - Random Access Memory.

б) пам'ять тільки для зчитування інформації. ПЗП - що постійний запам'ятовуючий пристрій, ROM - Read-Only Memory.

Інформація в ПЗП не може бути занесена комп'ютером, тому необхідна інформація (мікрокоди мікропроцесора) заноситься в ПЗП при виготовленні. Такі ПЗП називаються не програмованими. Всі пристрої, що запам'ятовують, типу ROM (ПЗП) энергонезалежні

Відрізняють пам’ять:

1) з безпосереднім (довільним) доступом (RAM, ROM);

2) з прямим (циклічним) доступом (диски);

3) пам'ять з послідовним доступом (магнітні стрічки).

3.2 Типи запам'ятовуючих елементів ОЗП

Для організації оперативної пам'яті використовуються властивості пристроїв визначати наявність електричних зарядів або електричних потоків. По цій властивості ОЗП діляться на динамічні і статичні.

Динамічна пам'ять. Конденсатор – це пристрій, здатний зберігати електричний заряд. Заряди на пластинках конденсатора дозволяють зберігати 1 біт інформації. Проте конденсатор не здатний зберігати заряди протягом тривалого часу, а тільки декілька мілісекунд. За цей час спеціальні ланцюги комп'ютера забезпечують заряджання конденсаторів, тобто оновлення інформації. Через безперервну природу цього процесу така пам'ять називається динамічною. У сучасних ПК динамічна пам'ять реалізується не на конденсаторах, а на базі спеціальних ланцюгів провідників, велика кількість яких об'єднуються в корпусі одного динамічного чіпа.

Статична пам'ять дозволяє потоку електронів циркулювати по ланцюгу. Напруга, що прикладається, може змінити напрям руху електронів. Існує тільки 2 напрями руху потоку, що дозволяє використовувати дані ланцюги як елементи пам'яті. Статична пам'ять працює на зразок вимикача, який перемикає напрям електронного потоку. Перемикач, що управляє електричним струмом відомий як реле. Пам'ять перших комп'ютерів створювалася на основі електричних реле. Надалі як перемикач використовувалися транзистори. Велика кількість транзисторів, об'єднаних в один ланцюг утворюють чіп статичної пам'яті. При втраті живлення і реле і транзистори забувають свій стан.

Основний недолік напівпровідникових ОЗП - енергозалежність.

3.3 Організація основної пам'яті ЕОМ - стекова пам’ять

За методами розміщення і пошуку інформації в запам’ятовуючому масиві, розрізняють адресну, стекову і асоціативну пам'ять.

Стекова пам'ять

stack - в перекладі з англ. стіг, скирта, купа (паперів). Складається з послідовності елементів. Обмін інформацією між ПК і стеком завжди виконується тільки через верхній елемент - вершину стека. При записі нового слова (команди, числа, символу) всі раніше записані слова зміщуються на один елемент вниз, а нове слово поміщається на вершину стека. Зчитування можливо тільки з вершини стека і проводиться з видаленням (після зчитування всі слова зміщуються на один елемент вгору) або без видалення зчитаного слова.

Це пам'ять типу LIFO - Last In First Out - Останнім прийшов, першим вийшов.

Дно стека ще називають основою стека. Використання стекової пам'яті зручно при побудові компілюючих програм, під час виклику підпрограм, роботі по обслуговуванню переривань. З погляду реалізації механізму доступу до стекової пам'яті виділяють апаратний і апаратно-програмний (зовнішній) стек.

Апаратний стек є сукупністю регістрів, зв'язки між якими організовані таким чином, що при записі і зчитуванні даних вміст стека автоматично змішується. Зазвичай місткість апаратного стека в діапазоні від декількох регістрів до декількох десятків регістрів. Апаратний стек характеризується високою швидкодією і обмеженою місткістю. Апаратна організація стека не завжди доцільна і тому в більшості ПК стек моделюють.

При цьому як стек звичайно використовують просто частину адресної пам'яті, що дозволяє міняти місткість стека і економити апаратуру. Зовні модель стека відрізняється від апаратного, але функціонує за тим же принципом LIFO. Це забезпечується за допомогою спеціального регістра процесора – вказівника стека SP (Stack Pointer), який містить адресу плаваючої вершини стека. В процесі виконання команд, що використовують стек, вміст SP автоматично збільшується або зменшується на 1 або 2 (при 2-х байтових словах пам'яті).

У ПК, що працює з 2-байтовими словами обмін даними між процесором і стеком відбувається таким чином: При завантаженні нового слова спочатку відбувається зменшення вмісту SP на 2, а потім запис цього слова в елемент, на який указує новий вміст SP. При витяганні слова із стека спочатку виконується читання вмісту елементу, на який указує SP, а потім збільшення SP на 2.

Стек росте у зворотний бік, таким чином при додаванні даних вершина стека все більш і більш просувається до менших адрес і значення SP всякий раз зменшується.

3.4 Сегментна адресація Intel-8086

Intel-8086 - 16-розрядний мікропроцесор, він не може працювати з числами великими. Максимально 2 16- 1 = 65 535 = 64 Кбайт.

Теоретично це означає, що він може використовувати тільки 65536 (64К) адрес. Проте, практично цей мікропроцесор використовує значно більше - 1024Кбайт, оскільки використовується 20-розрядна адреса (220 = 1 Мбайт).

Адресний простір ділиться на довільну кількість сегментів, кожний з яких містить не більше 64 Кбайт. Адресою сегменту або параграфом сегменту називається адреса першого байта сегменту, він завжди кратний 16 байтам.

Для звернення до байта усередині сегменту використовується додаткова адреса - зсув. Він указує розташування байта щодо параграфа сегменту.

Фізична адреса утворюється за допомогою об'єднання 16-разрядного параграфа сегменту і 16-розрядного відносного зсуву. Якщо параграф сегменту змістити вліво на 4 біта, доповнивши справа нулями, то ми одержимо 20-розрядну фізичну адресу початку сегменту. Склавши цю адресу з 16-розрядним зсувом байта усередині сегменту, одержимо 20-розрядну фізичну адресу байта.

Параграф сегменту записується у вигляді п'ятизначного шістнадцяткового числа, остання цифра якого завжди 0 (FFE40, BCD80). 0 виходить в результаті множення шістнадцяткового 4х значного числа на 16 (це і призводить до того, що сегментна частина може указувати тільки на елементи пам'яті з адресою, яка кратна 16). Зсув записується у вигляді 4х значного шістнадцяткового числа. Сума зсуву і параграфа сегменту дає п'ятизначне шістнадцяткове число (20- розрядну адресу).

Наприклад для логічної адреси 1234:5678 отримуємо наступну фізичну адресу:

+ 5678

179B8

Хоча одиницею пам'яті, що адресується, в ПК є байт, багато операцій здійснюються над словами (16 розрядів). Слово в пам'яті зберігається в двох сусідніх байтах. Молодший байт слова має меншу адресу, а старший - на 1 більший.

Наприклад число ABCD в пам'яті зберігається як CDAB.

3.5 Лабораторна робота № 5

Тема: Безпосередня, регістрова і непряма адресації операндів в команді пересилки даних

Мета: 1. Ознайомитися з роботою команди пересилки даних;

2. На прикладі команди пересилки даних вивчити способи адресації
операндів.

Порядок виконання:

1. Ознайомитися зі структурою команди пересилки даних MOV і основними способами адресації операндів.

2. Зміст завдання:

а) Помістіть в регістри SS і DS шістнадцяткові числа, що вказані в таблиці 3.1 для кожного варіанту.

б) Кожну з приведених нижче інструкцій введіть, починаючи з адреси CS:0100. Ознайомтеся із вмістом регістрів і зафіксуйте вміст тих з них, які служать для зберігання операндів, і імовірно можуть змінитися в результаті виконання даної інструкції.

Протрасуйте інструкцію і відзначте як змінився вміст регістрів. Вкажіть використаний в команді спосіб адресації і характер дії команди.

Для команд, що використовують непряму адресацію, вкажіть, яким чином (з використанням яких регістрів) формується виконавча адреса. Відзначте результати виконання команди, використовуючи команду DEBUG для перегляду дампу пам'яті.

1) MOV AX,17D6

2) MOV BX,3FC6

3) MOV EF56,CX

4) MOV DS,12EC

5) MOV SI,2CA5

6) MOV BP,3AC6

7) MOV DX,BX

8) MOV BL,BH

9) MOV AX,BL

10) MOV DI,DX

11) MOV CH,DL

12) MOV [BX],AX

13) MOV [DI],CH

14) MOV CX,[SI]

15) MOV AL,[BP]

16) MOV [BP+SI],AX

17) MOV [AX],BX

18) MOV AX,[DX]

19) MOV [BL],AX

20) MOV BX,[BP]

21) MOV [BX],BP

в) Напишіть декілька послідовностей інструкцій, що дозволяють помістити інформацію з одного елементу пам'яті в інший (кількість інформації і адреси елементів пам'яті вказані в таблиці 3.1).

Зміст звіту:

1. Тема і мета лабораторної роботи.

2. По кожному пункту завдання відобразити:

а) структуру всіх команд, що були використані в процесі виконання пункту завдання;

б) результати виконання кожної команди.

Таблиця 3.1. Завдання до лабораторної роботи 5

Варіант SS DS Байт чи слово з елементу в елемент
1.   9A1F байт SS:76E2 DS:9C12
2.   8B2E слово DS:723A DS:8D34
3. 4A3F 7C3C байт SS:6153 SS:7E56
4. 5F63 6D4D слово DS:6AD3 SS:6F78
5. 4EAB 515B байт SS:54EB DS:509A
6.   426C слово DS:6AA3 SS:41BC
7. 54E3 337A байт SS:33A4 DS:32DE
8. 78EF   байт DS:3A16 DS:23F1
9.   55DE слово SS:276C DS:6423
10. 7EAA 46AC слово DS:4ACB SS:5545
11. 5F34   байт SS:62FA SS:4667
12. 65FF   слово DS:72CB SS:3789
13. 51EA   байт SS:772A DS:2801
14. 42AA 8A17 слово DS:788C SS:99AB
15. 81AB 7BEF байт SS:9DAD DS:8ACD
16. 76E2 9C12 байт DS:3918 DS:9A1F
17. 723A 8D34 байт SS:4536 DS:8B2E
18.   7E56 слово DS:4A3F SS:7C3C
19. 6AD3 6F78 слово SS:5F63 SS:6D4D
20. 54EB 509A байт DS:4EAB SS:515B
21. 6AA3 41BC слово SS:5687 DS:426C
22. 33A4 32DE слово DS:54E3 SS:337A
23. 3A16 23F1 байт SS:78EF SS:2409
24. 276C   слово DS:8756 DS:55DE
25. 4ACB   байт SS:7EAA DS:46AC
26. 62FA   слово DS:5F34 SS:3768
27. 72CB   байт SS:65FF SS:2824
28. 772A   слово DS:51EA SS:9935
29. 788C 99AB слово SS:42AA DS:8A17
30. 9DAD 8ACD байт DS:81AB DS:7BEF

Теоретичні зведення до виконання лабораторної роботи №5





Дата публикования: 2014-11-18; Прочитано: 1243 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.028 с)...