Материал: Методические указания к выполнению лабораторных работ по дисциплине «Аппаратные средства вычислительной техники» для студентов специальности «Компьютерная безопасность». Ермаков С.А., Остапенко А.Г

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ние смещения до следующей команды (в примере до команды «hlt») по формуле:

 

 

 

 

AK=IP+3

 

 

 

 

(3.4)

 

Запишите в отчет значение AK.

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 6

 

 

Значения регистров МП и адресов операндов

 

IP1

IP2

 

IP3

SP1

SP2

SP3

BP

AK

Aa

Ab

 

 

 

 

 

 

 

 

 

 

 

6. После выполнения команды «mov bp,sp» в процедуре запишите в отчет содержимое стека в табл. 7 и значение регистра BP в табл. 6.

Таблица 7

Содержимое стека

Смещение

Значение

 

 

FFFE

0000

 

 

FFFC

FF96

 

 

FFFA

FF96

 

 

FFF8

001E

 

 

FFF6

0009

 

 

FFF4

0000

 

 

7.По формуле 1 рассчитайте адреса Aa и Ab парамет-

ров а и b.

8.Продолжайте выполнять программу в пошаговом режиме. Запишите значение регистра IP и SP соответственно как IP1 и SP1 в табл. 6 перед выполнением команды «RET N» и после - как IP2 и SP2.

9.Выполните программу до конца. Убедитесь в корректности программы.

10.Проанализируйте значения таблиц 6 и 7 и сделайте выводы по работе.

11.Составьте отчет по работе. Отчет должен включать:

-цель работы;

-задания к лабораторной работе;

24

-листинг программы;

-табл. 6 и 7 с результатами, полученными при выполнении работы;

-выводы по работе.

Контрольные вопросы :

1.Какими преимуществами обладает разработка программ с использованием подпрограмм?

2.Какими способами можно передавать параметры подпрограмме?

3.Какие действия выполняет микропроцессор при выполнении команды «Call»?

4.Что делает команда «RET 3»?

5.Как получить доступ внутри процедуры к параметрам, переданным из основной программы через стек?

6.Где сохраняется адрес возврата из процедуры?

25

Лабораторная работа №4 Команды ввода-вывода микропроцессора

Цель работы: изучить команды ввода-вывода микропроцессора 8086.

Теоретическ ие сведения

Возможности вычислительной техники во многом определяются составом и техническими возможностями внешних устройств. Существует большое количество разнообразных внешних устройств (ВУ), таких как жесткие диски, принтеры, сканеры, клавиатуры и другие. Внешние устройства отличаются по физическим принципам работы, по скорости передачи данных, по используемым протоколам. Важной особенностью внешних устройств является то, что они работают в более медленном темпе, чем возможности вычислительного ядра [1]. В связи с этим возникает задача синхронизации между собой внешнего устройства и процессора.

Процессоры не могут учитывать особенности работы каждого устройства из-за их большого количества и разнообразия. В связи с этим, в систему вводятся специальные устройства - адаптеры, которые являются своеобразными переводчиком с языка микропроцессора на язык ВУ.

Взаимодействие МП с внешними устройствами сводится к записи или чтению данных в специальные регистры, ассоциированных с ВУ. Данные регистры называют портами. Соответственно, управление ВУ, например, принтером, заключается в записи команд и чтении состояния внешнего устройства из соответствующих портов. При этом МП не знает, какие управляющие сигналы и в какой последовательности нужно подавать на исполнительные устройства ВУ. Например, чтобы распечатать в нужной позиции символ, процессор записывает в порты только общие команды: в какой позиции и код символ. Аналогично, сигналы от принтера, например, об

26

отсутствии бумаги или картриджа, поступают в виде числового кода в соответствующие порты, откуда считываются МП[2].

Для работы с портами используются две команды: IN и OUT. Команда IN имеет следующий вид:

IN AL(AX), Addr(DX),

(4.1)

где AL или AX - приемник данных от порта внешнего устройства. Если данные 8-разрядные, то используется регистр AL, если 16-разрядные - то AX;

Addr - адрес порта. Адрес порта можно задать непосредственно числом (в этом случае адрес может быть числом от 0 до 255) или содержимым регистра DX (адрес может принимать значения от 0 до 65535).

Вывод данных на порт внешнего устройства осуществляется командой OUT, имеющий следующий формат:

OUT Addr(DX), AL(AX).

(4.2)

При выполнении команды «IN» данные с порта внешнего устройства передаются в регистр AL или AX микропроцессора. Ниже приведен пример использования команд вво- да-вывода:

mov dx,199

; помещаем в регистр DX адрес порта дисплея

xor ah,ah

; выполняем операцию "исключающее ИЛИ" для обну-

 

ления старшего байта регистра АХ

I1:

; считываем значение порта внешнего устройства с ад-

in al,110

ресом 110 в регистр AL

out dx,ax

; выводим порт с адресом 199 значение регистра АХ

cmp al,20

; сравниваем значение регистра AL c 20

Jnz I1

; если не равно, то продолжаем цикл

Вышеприведенный программный код в цикле осуществляет чтение одного байта из порта с адресом 110 и отправляет 2 байта на порт 199. В среде эмулятора Emu8086 порту 110 сопоставлено виртуальное устройство Simple. Данное устройство является моделью однобайтного порта. Порту

27

199 сопоставлен дисплей (Led_display), который отображает двухбайтное число.

Задачи:

1. Разработать программный код в эмуляторе Emu8086, поддерживающий на виртуальном термометре «Thermometer» заданное значение температуры T при исходном значении температуры окружающей среды T1. Текущее значение температуры можно считать с порта 125, а включить спиртовку, подогревающую термометр, - подав на порт 127 значение 1.

Порядок выполнения работы :

1.Создайте новый проект в среде эмулятора Emu8086, используя шаблон «Bin template»;

2.Разработайте программный код на языке ассемблера согласно заданию 1 из постановки задачи. Значения температур T и T1 возьмите из табл. 8 согласно варианту;

Таблица 8

Варианты заданий

Номер

1

2

3

4

5

6

7

8

9

10

варианта

 

 

 

 

 

 

 

 

 

 

Т

60

61

62

63

64

65

66

67

68

69

Т1

25

26

27

28

29

30

31

32

33

34

Номер

11

12

13

14

15

16

17

18

19

20

варианта

 

 

 

 

 

 

 

 

 

 

Т

70

71

72

73

74

75

76

77

78

79

Т1

35

36

37

38

39

40

41

42

43

44

3.Запустите проект на эмуляцию, нажав кнопку меню «Emulate». В окне эмулятора нажмите на пункт главного меню

«virtual devices» и выберите «Thermometer.exe»;

4.Выполните программу в пошаговом или автоматическом режиме, убедитесь, что результаты работы программы

вэмуляторе соответствуют постановке задачи;

28

Источник: https://studfile.net/preview/16565265/