Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metoduchka_per.doc
Скачиваний:
4
Добавлен:
18.11.2018
Размер:
518.14 Кб
Скачать

Міністерство освіти і науки України

Національний університет «Львівська політехніка»

Кафедра АСУ

МЕТОДИЧНІ ВКАЗІВКИ

ДО КУРСУ ЛАБОРАТОРНИХ РОБІТ

для студентів базового напрямку

«Комп’ютерні науки»

з дисципліни:

«Архітектура компютерів»

Затверджено на засіданні

кафедри АСУ

протокол №_________

від «__» _________ 20__ р.

Львів - 2007

Методичні вказівки до виконання лабораторних робіт з дисципліни «Архітектура комп’ютерів»для студентів базового напрямку «Комп’ютерні науки» / Укл. Стрямець С. П. - Львів: Національний університет “Львівська політехніка”, 2007.

Укладачі: Стрямець С. П, к.т.н., доц.,

Ткаченко Р. О., д.т.н. проф.

Відповідальний за випуск: Шпак З.Я., к.т.н., доц.

Рецензенти: Різник В. В., д.т.н. проф.

Методичні вказівки обговорено та схвалено на засіданні кафедри АСУ

Протокол №_________від “___” ____________2007р.

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

Тема: Загальна структура мікролабораторії і процесора.

Мета: Вивчити структуру мікролаборатоії і процесора, і після чого написати програму за вказівками поданими нижче.

Мікролабораторія являє собою мікрокомп'ютер на базі однокристального мікропроцесора "КР580ИК80А ".

У мікропроцесорі є такі 8-бітні регістри :

А-акумулятор, в якому знаходиться результат виконання довільної арифметико-логічної 8-бітної операції;

F-регістр прапорців (ознак);

В, С, D, Е, H, L-регістри загального призначення. Вони об'єднуються у 16-бітні регістри по парах:AF, BC,DE, HL.

Команда може займати від одного до трьох байтів: перший байт -код операції, другий та третій - 8-бітний або 16-бітний операнд (в залежності від операції).

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

CARRI-перенос за межі регістра;

ZERO - нульовий результат;

PARITY- результат має парну кількість одиничок;

SIGN - знак числа (старший біт результату);

На прапорці не впливають команди пересилки, розгалуження та вводу-виводу.

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

1. Умовними переходами на мітку в залежності від стану прапорців

2. Умовними викликами підпрограм;

3. Поверненнями з підпрограм за станом прапорців.

Мнемоніка розгалужуюгих команд:

Команди розгалуження розділяються на умовні переходи (J), умовні виклики (С), умовні повернення (R):

JC, СС, RC - перехід виконується, якщо встановлений прапорець переносу;

JNC, CNC, RNC - виконується, якщо немає переносу;

JZ, CZ, RZ - виконується, якщо нуль;

JNZ, CNZ, RNZ- виконується, якщо не нуль;

JP, СР, RP - виконується, якщо результат додатній;

JM, CM, RM - виконується, якщо результат від'ємний;

JPO, СРО, RPO - виконується, якщо встановлений прапорець парності;

JPE, CPE, RPE - виконується, якщо не встановлений прапорець парності.

На стан прапорців не впливають такі команди:

команди переходу; команди виклику підпрограм; команди повернень з підпрограм, а також:

NX" - 16- бітного інкременту;

"DCX" - 16- бітного декременту;

Вводу "IN", виводуUТ" ;

Регістрові пересилки "MOV', "SHPL";

"ХСНG"-обміну регістрових пар "DE" і "HL"

"XTHL"- обміну верхівки стека і "HL";

"MVI"-завантаження регістра;

"LXI"- завантаження регістрової пари;

"PUSH" - опускання в стек регістрової пари;

"POP"- виймання із стека регістрової пари;

"NOP" порожня команда;

"LDA" та "LDAX"- читання з пам'яті в акумулятор за безпосередньою адресою або за адресою, яка знаходиться в регістровій парі;

"STA" та "STAX"- аналогічні команді-запису –акумулятора в пам'ять;

"LHLD" - читання двох байт по безпосередній адресі та завантаження їх у регістрову пару "HL";

"SHLD"- запис "HL" в пам'ять (протилежна команда).

Решта команд встановлюють прапорці відповідно з їх призначенням:

"INR", "DCR" - восьмибітного інкременту та декременту :

  • арифметичні команди ADD, ADC, ADI, SUB, SBB, SUI;

  • логічні команди ANA, ORA, XRA;

  • команди порівняння CMP, CPI;

- команди зсуву через перенос та спеціальні команди RAL, RAR- додавання регістрових пар до пари HL - DAD;

У мікропроцесорі існують спеціальні 16- бітні регістри :

SP - вказівник стеку;

PC - програмний лічильник.

У "PC" знаходиться адреса команди, де на даний момент ви­конується програма.

Стек - це організація даних за принципом - останій увійшов, першим вийшов. У "SP" знаходиться адреса верхівки стека. Якщо у стек записуються дані (командою "PUSH") або адреса (командами виклику підпрограм), то "SP" зменшується на 2, тобто стек зростає від кінця пам'яті до початку.

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

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

Для введення програми її треба перед тим відтранслювати з допомогою таблиці кодів. Трансляція виконується в такій послідовності: записується в 16-ій формі адреса команди, код операції, операнди (якщо передбачені). Після того програма готова виконати наступні дії:

  1. Натиснути "СБРОС" ;

  2. Набрати на клавіатурі адресу початку програми (8000);

  1. Натиснути клавішу "УСТ. АДР" . Набрана адреса повинна з'явитись на чотирьох лівих індикаторах. Якщо адреса не з'явилась, або з'явилась з помилкою, то повторити з пункту 1.

  2. Набирати на двох правих індикаторах коди програми і даних, натискаючи після кожного байту клавішу "ЗАП".

  3. Перевірити введені коди, рухаючись по пам'яті за допомогою клавіш "АД-", "АД+". Якщо знайдено код з помилкою, набрати вірне значення і натиснути "ЗАП". Якщо адреса коду, яка висвічується на чотирьох лівих індикаторах не співпадає з адресою, яка вказана у тексті програми, то повторити ввід з пункту 1.

6. Встановити адресу початку програми і натиснути "ПУСК".

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

Процесор отримує і видає інформацію назовні через інтерфейс вводу/виводу - мікромодуль "КР580ВВ55А". Інтерфейс має три 8- бітні порти, до яких під'єднані клавіатура (крім клавіші "СБРОС"), світлодіоди, перемикачі, гучномовець. Обмін з інтерфейсом йде через акумулятор за допомогою команд "IN","OUT". Перед тим, як працювати з інтерфейсом, його потрібно запрограмувати за допомогою керуючого коду, що вказує, які порти повинні працювати на ввід, а які - на вивід.

Завдання

Виконати програму для всіх 11 пунктів таблиці 1, які змінюють байти #8006, #8007, #8008.

Після кожного запуску перевіряти, як впливають стани перемикачів на світлодіоди, записувати стани світодіодів в звіт. Необхідно виконати 11 запусків програми приведеної в таблиці 1, які відрізняються байтами 8006-8008, які подані в таблиці 2.

Таблиця 1

Адреса

Програма

Коментар

8000

MVI A,#81

3E,8l

Завантажити в акумулятор код для програмування інтерфейса

8002

OUT#FB

D3,FB

Вивести вміст акумулятора на програмуючий порт інтерфейса

8004

Ml: IN#FA

DB,FA

Ввід у акумулятор стан перемикачів з порту #FA

8006

NOP

00

Порожні команди для резервування місця під інші команди

8007

NOP

00

8008

NOP

00

8009

OUT #F9

D3,F9

Вивід вмісту акумулятора на порт світло діодів

800В

JMP M1

СЗ,04э80

Безумовний перехід. Замість мітки записується її адреса у вигляді: молодший байт, старший байт

Таблиця 2

Байти з адресою

Коментар

8006

8007

8008

1

NOP

NOP

NOP

Порожня операція

2

XRI

#1F

NOP

Сума акумулятора по MOD 2 з байтом #1F

3

RLC

RLC

NOP

Циклічний зсув акумулятора вліво на 2 біта

4

RRC

RRC

NOP

Циклічний зсув акумулятора вправо на 2 біта

5

STC

RAL

NOP

Встановлення прапорця переносу і зсув акумулятора вліво через перенос

6

STC

RAR

NOP

Встановлення прапорця переносу і зсув акумулятора вправо через перенос

7

MVI C

#0A

ORA C

Завантажити у регістр "С" число #0А (00001010) і диз'юнкція регістра "С" з акумулятором

8

MVI C

#0A

ANA С

Завантажити у регістр "С" число #0А (00001010) і кон'юнкція регістра "С" з акумулятором

9

MVI С

#0A

XRA C

Завантажити у регістр "С" число #0А (00001010) і сума по MOD 2 регістра "С" з акумулятором

10

MVI C

#0A

ADD С

Завантажити у регістр "С" число #0А (00001010) і додавання акумулятора з регістром "С"

11

MVI C

#0A

SUВ C

Завантажити у регістр "С" число #0А (00001010) і віднімання акумулятора з регістром "С"

Результати роботи програми описати у вигляді станів світлодіодів. Наприклад, перший пункт таблиці виглядає так:

0 0 0 0 X1 X2 X3 0

  1. - світлодіод згасає незалежно від стану перемикачів

  2. - світлодіод світиться незалежно від стану перемикачів

Xj - стан світлодіода залежить від стану перемикача у прямому напрямку

Yj - стан світлодіода залежить від стану перемикача у зворотньому напрямку.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]