15277

Вивчити програмну модель мікропроцесора і8086

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

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

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

Украинкский

2013-06-11

153 KB

8 чел.

PAGE  5

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

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

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

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

  1.  Програмна модель мікропроцесора і8086

Програмною моделлю МП називається сукупність програмно доступних регістрів, тобто тих регістрів вміст яких можна зчитати або змінити за допомогою команд. Програмну  модель МП і8086 складають регістри загального призначення (РЗП), сегментні регістри, вказівник команд і регістр прапорців. Програмна модель МП і8086 представлена на рис. 1.

Рисунок 1 - Програмна модель МП і8086

РЗП поділяються на регістри даних і регістри-вказівники. До регістрів даних відносяться 16-розхрядні регістри: AX, BX, CX, DX. Кожен із цих регістрів складається з двох   8-розрядних  регістрів,  які  можна незалежно      адресувати  іменами AH, BH, CH, DH (старші байти – Hihg) та AL, BL, CL, DL (молодші байти – Low). Регістри-вказівники SP (Stack pointer – вказівник стеку), BP (Base pointer – базовий регістр), SI (Source Index – індекс джерела), DI (Destination Index – індекс призначення) є 16-розрядними. Усі РЗП можна використати для зберігання даних, але в деяких командах допускається використання певного регістра за замовчуванням: AX – при множенні, діленні, введенні та виведенні слів;   AL -  при множенні, діленні, введенні та виведенні байтів, десятковій корекції, перетворенні байтів; AH – при множенні і діленні байтів; BX – при трансляції; CX – як лічильник циклів і вказівник довжини рядків у рядкових командах; CL – для зберігання зміщення з указанням змінної; DX – при множенні та діленні слів, при введенні та виведенні з непрямою адресацією; SP – при операціях із стеком; SI, DI – при рядкових операціях. На відміну від 8-розрядних мікропроцесорів регістр SP зберігає зміщення останньої зайнятої комірки стека.

Оперативна пам'ять МП зазвичай логічно поділяється на області коду (програмної пам’яті), даних і стеку. Для адресування до області коду використовується сегментний регістр CS, який визначає початкову адресу сегменту Seg, і вказівник команд IP, який містить зміщення EA. Для адресування до області пам’яті стеку при виконанні стекових операцій використовуються відповідно сегментний регістр SS і вказівник стеку SP. При звертаннях до області даних використовуються сегментні регістри DS і ES, які задають початкову адресу сегменту, а розташування адреси зміщення залежить від конкретної операції.

  1.  Порядок роботи з регістрами МП

Порядок роботи з регістрами МП розглянемо на прикладі команди MOV.

Команда MOV dest, sourse:

  •  копіює другий операнд (source – джерело) у перший операнд (destination - призначення);
  •  Операндом-джерелом може бути безпосереднє число, регістр загального призначення або комірка запам’ятовуючого пристрою;
  •  Операндом-призначення може бути регістр загального призначення або комірка запам’ятовуючого пристрою;
  •  Обидва операнди повинні мати однаковий розмір – байт або слово.

Нижче наведені формати застосування команди MOV:

MOV REG, memory
MOV memory, REG
MOV REG, REG
MOV memory, immediate
MOV REG, immediate ,

де:

  •  REG (регістр загального призначення): AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP;
  •  memory (адреса комірки пам’яті): [BX], [BX+SI+7], змінна, і ін.;
  •  immediate (безпосереднє число): 5, -24, 3Fh, 10001101b, і ін..

Для роботи з сегментними регістрами команда MOV підтримує наступні формати:

MOV SREG, memory
MOV memory, SREG
MOV REG, SREG
MOV SREG, REG,

де:

  •  SREG (сегментний регістр): DS, ES, SS, і тільки як другий операнд: CS;
  •  REG (регістр загального призначення): AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP;
  •  memory (адреса комірки пам’яті): [BX], [BX+SI+7], змінна, і ін..

При роботі з регістрами МП необхідно памятати  наступні правила:

  1.  В сегментні регістри не можуть завантажуватися безпосередньо числа;
  2.  Значення регістрів CS і IP не можуть встановлюватися командою MOV чи якоюсь іншою командою.

Нижче наведена коротка програма, що ілюструє використання команди MOV:

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

MOV AX, 0B800h     ; пересилає в регістр AX шістнадцяткове число B800h.

MOV DS, AX         ; копіює вміст регістру AX в сегментний регістр DS.

MOV CL, 'A'        ; заносить в регістрt CL код символу 'A' ASCII 41h.

MOV CH, 1101_1111b ; пересилає в регістр CH двійкове число 1101_1111b.

MOV BX, 15Eh       ; заносить в регістр BX число 15Eh.

MOV [BX], CX       ; копіює вміст регістру CX в комірку памяті B800:015E

RET                ; повернення до операційної системи.

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

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

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

MOV R1, 00h   ;очистка регістру R1.

MOV R2, R1   ;очистка регістру R2.

MOV R3, R1   ;очистка регістру R3.

MOV R4, R1  ;очистка регістру R4.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MOV DS, CH4h    ;помилка  

MOV CL, 'X'         ;занесення в регістр CL коду заданого символу 'X' ASCII.

MOV CH, 11011111b ;запис в регістр CH двійкового числа 11011111b.

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

MOV [BX], CX       ;копіювання вмісту регістра CX в комірку памяті CH1h:CH3h

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

 Примітка: в рядку з коментарем «помилка» приведений приклад неправильного застосування команди MOV. При компілюванні програми буде дане повідомлення про помилку, зміст якого необхідно занотувати, а потім виправити помилку, використовуючи команди, що знаходяться в стрічках, відокремлених  знаком «;». При цьому рядок програми, що містить помилку, видалити або відокремити знаком «;».

  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.  


Таблиця 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 Індивідуальні завдання до лабораторної роботи №2

№ варіанту

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

R15

R16

R17

R18

R19

R20

C1h

C2h

C3h

C4h

C5h

X

1

AX

BX

CX

DX

AL

AH

BH

BX

AX

BX

CX

SI

SS

DX

DI

AX

SI

DS

BX

CX

A1

A000

BF00

B800

0

A

2

BX

AX

CX

DX

BL

BH

CH

CX

BX

AX

CX

SI

DS

DX

DI

BX

SI

ES

AX

CX

B2

A100

BE00

B810

10

B

3

CX

AX

BX

DX

CL

CH

DH

DX

CX

AX

BX

SI

ES

DX

DI

CX

SI

SS

AX

BX

C3

A200

BD00

B820

20

C

4

DX

AX

BX

CX

DL

DH

AH

AX

DX

AX

BX

SI

SS

CX

DI

DX

SI

ES

AX

BX

D4

A300

BC00

B830

30

D

5

AX

DX

CX

BX

AH

AL

BL

BX

AX

DX

CX

DI

DS

BX

SI

AX

DI

SS

DX

CX

E5

A400

BB00

B800

40

E

6

BX

DX

CX

AX

BH

BL

CL

CX

BX

DX

CX

DI

ES

AX

SI

BX

DI

DS

DX

CX

F6

A500

BA00

B810

50

F

7

CX

DX

BX

AX

CH

CL

DL

DX

CX

DX

BX

DI

SS

AX

SI

CX

DI

DS

DX

BX

A7

A600

B900

B820

60

G

8

DX

CX

BX

AX

DH

DL

AL

AX

DX

CX

BX

DI

DS

AX

SI

DX

DI

ES

CX

BX

B8

A700

B800

B830

70

H

9

AX

CX

BX

DX

AL

AH

DH

DX

AX

CX

BX

SI

ES

DX

DI

AX

SI

SS

CX

BX

C9

A800

B700

B800

80

I

10

BX

CX

AX

DX

BL

BH

AH

AX

BX

CX

AX

SI

SS

DX

DI

BX

SI

ES

CX

AX

DA

A900

B600

B810

90

J

11

CX

BX

AX

DX

CL

CH

BH

BX

CX

BX

AX

SI

DS

DX

DI

CX

SI

SS

BX

AX

EB

AA00

B500

B820

100

K

12

DX

BX

AX

CX

DL

DH

CH

CX

DX

BX

AX

SI

ES

CX

DI

DX

SI

DS

BX

AX

FC

AB00

B400

B830

110

L

13

AX

BX

DX

CX

AH

AL

DL

DX

AX

BX

DX

DI

SS

CX

SI

AX

DI

DS

BX

DX

AD

AC00

B300

B800

120

M

14

BX

AX

DX

CX

BH

BL

AL

AX

BX

AX

DX

DI

DS

CX

SI

BX

DI

ES

AX

DX

BE

AD00

B200

B810

130

N

15

CX

AX

DX

BX

CH

CL

BL

BX

CX

AX

DX

DI

ES

BX

SI

CX

DI

SS

AX

DX

CD

AE00

B100

B820

140

O

16

DX

AX

CX

BX

DH

DL

CL

CX

DX

AX

CX

DI

SS

BX

SI

DX

DI

ES

AX

CX

D0

AF00

B000

B830

150

P


  1.  Яке призначення вказівника команд ІР?
    1.  Чим відрізняється сегментний регістр CS від інших сегментних регістрів?

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

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

PAGE  2


PAGE  3


 

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

65818. Инвентаризация основных средств 21.5 KB
  Инвентаризация основных средств это проверка соответствия основных средств учетным записям о них. Одновременно с инвентаризацией собственных основных средств проверяются основные средства находящиеся в аренде.
65819. Интерполирование 344 KB
  Цель: Применяя методы интерполяции найти аппроксимацию функции заданной таблично. значения этой функции при указанных значениях аргумента х. Выполнить интерполирование и построить график зависимости интерполирующей функции от х на отрезке определенном крайними узлами таблицы.
65820. Исследование модели шинной ЛВС с маркерным доступом 810.5 KB
  Цель работы: Исследование особенностей построения и функционирования шинной ЛВС с маркерным методом доступа и определение основных характеристик сети. Определить основные характеристики ЛВС шинной топологии с маркерным методом доступа на основе исследования аналитической модели сети.
65821. Управление функциональностью ядра операционной системы 20.82 KB
  Основной частью модуля является процедура выдачи разрешения на доступ. Изначально файл полностью доступен всем пользователям, так как основное распределение доступа происходит позже. В процедуре определения возможности предоставления доступа...
65822. Настройка точки доступа 41.5 KB
  Внимание Во избежание помех между точками точки подключать по одной Соединяем точку доступа сетевым кабелем с сетевым адаптером подаем питание. Сбрасываем настройки точки.
65823. ВИМІРЮВАННЯ ПОТУЖНОСТІ В КОЛАХ ПОСТІЙНОГО ТА ОДНОФАЗНОГО ЗМІННОГО СТРУМІВ 701.5 KB
  Вимірювання потужності з допомогою амперметра вольтметра та ватметра Потужність та енергія є основними характеристиками більшості фізичних об'єктів процесів та явищ. У сучасній практиці доводиться вимірювати потужності від часток вата потужність сигналів мобільних телефонів...
65824. Итерационные алгоритмы 68 KB
  Условие задачи Спецификация программы(SRS) Тест план с результатами выполнения тестов Текст программы 1)Условия задачи: Реализовать программу: В одномерном массиве размерностью N, состоящем из чисел: 1) Найти среднее арифметическое элементов, попадающих в заданный интервал...
65825. Санитарно-техническое оборудование жилого многоэтажного дома 7.2 MB
  Методические указания предназначены для студентов дневного и заочного обучения специальности Водоснабжение, водоотведение и охрана водных ресурсов, выполняющих курсовой проект на тему Санитарно-техническое оборудование многоэтажного жилого дома.
65826. Разработка он-лайн системы продаж и технической поддержки цифровой компьютерной техники 4.02 MB
  Существование предприятия без персональных компьютеров совершенно немыслимо, ведь с их помощью мы ведем бухгалтерию, сдаем отчеты, получаем информацию от других сотрудников предприятия и, наконец, общаемся с внешним миром. ПК на рабочем месте должен быть всегда исправен и готов к работе, именно поэтому сервисное обслуживание компьютеров имеет огромное значение.