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


 

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

31811. Фактографические методы прогнозирования решения 26 KB
  Фактографические методы прогнозирования решения. Фактографические методы базируются на фактически имеющемся информационном материале об объекте прогнозирования и его прошлом развитии. Экспертные методы базируются на информации которую поставляют специалистыэксперты в процессе систематизированных процедур выявления и обобщения этого мнения. Комбинированные методы выделены в отдельный класс чтобы можно было относить к нему методы со смешанной информационной основой в которых в качестве первичной информации используются фактографическая и...
31812. Комплексные системы прогнозирования решения 30.5 KB
  Позволяет: Выбрать объект прогноза выявить внутренние закономерности его развития написать сценарий сформулировать задачи и генеральную цель прогноза провести анализ иерархии и декомпозицию цели принять внутреннюю и внешнюю структуру объекта прогнозирования провести анкетирование выполнить математическую обработку данных анкетного опроса количественно оценить структуру верифицировать результаты разработать алгоритм распределения ресурсов провести распределение ресурсов оценить распределение ресурсов Методика примечательна тем что сочетает...
31813. Модели процесса принятия решений 27 KB
  2политические система предпочтений лица принимающего решение 3организационные в большинстве организаций есть организованные анархии процесс принятия решений в которых обладает особенностями. 4 Три типа ППР 1Сначала думаю: определение проблемы диагностика проектирование решениевыбор 2Сначала вижу: подготовка инкубирование проектирование верификация 3Сначала делаю: действие выбор закрепление 5 Классификация процессов взаимодействия руководителя со своими подчиненными: 1 Вы решаете задачу самостоятельно используя ту...
31814. Теория игр в разработке управленческих решений: основные понятия, виды 27.5 KB
  Каждая из сторон имеет свою цель и использует некоторую стратегию которая может вести к выигрышу или проигрышу в зависимости от поведения других игроков. Стратегия игрока правила действия игрока в каждой из возможных ситуаций игры. Платежная матрица матрица эффективности матрица игры. Она включает все значения выигрышей.
31815. Позиционные игры и метод «Дерево решений» при разработке управленческих решений 34 KB
  Позиционные игры и метод Дерево решений при разработке управленческих решений. Позиционные игры класс бескоалиционных игр в которых принятие игроками решений т. в ходе процесса принятия решений субъект проходит последовательность состояний в каждом из которых ему приходится принимать некоторое частичное решение. Дерево решений это графоаналитический метод позволяющий визуально оценить различные действия различных факторов на выбор УР.
31816. Технология ведения деловых бесед 29 KB
  К числу целей требующих проведения деловой беседы можно отнести вопервых стремление одного собеседника посредством слова оказать определенное влияние на другого человека или группы к действию с тем чтобы изменить существующую деловую ситуацию или деловые отношения другими словами создать новую деловую ситуацию или новые деловые отношения между участниками беседы; вовторых необходимость выработки руководителями соответствующих решений на основании анализа мнений и высказываний сотрудников. В сравнении с другими видами речевой...
31817. Личные качества менеджера, темперамент и психологический тип лица, принимающего решения 34 KB
  Личные качества менеджера темперамент и психологический тип лица принимающего решения. менеджер занимается приемом передачей и обработкой информации необходимой для работы предприятия; руководитель принимает решения которые ложатся в основу работы предприятия. К основным личным качествам современного менеджера можно отнести такие качества как: жажда знаний профессионализм новаторство и творческий подход к работе; упорство уверенность в себе и преданность делу; нестандартное мышление изобретательность инициативность и...
31818. Организация процесса разработки, принятия и выполнения управленческих решений 26 KB
  Фактор виляющие на организацию проц ЛПР: 1Степень структурированности проблемы 2Степень загрузки ЛПР 3Налич инфи 4Степень неопределенности 5Наличие ресв 6Масштабность проц принимаемого решения 7 организационная культура предприятия Особенности разработки запрограммированных и не запрограммированных решений: Алгоритм разрки запрогго решения: 1Распредеелние ресв на разработку решения 2Назаначение ответственных за выполнение УР Алгоритм разрки не запрогго решения: 1Создание временного труд колва по РУР 2Координация проц РУР 3Контроль хода...
31819. Использование власти и личностного влияния в процессе принятия управленческих решений 24 KB
  Управленческие отношения формируются самим рукм в сфере его воздействия в поле его влияния. Формализованные УР ориентируют рукля на жесткие требования а работников на подчинение этим требованиям. Персонализированные ориентируют руководителя на мягкие требования а работников на самостоятельное решение проблем. Виды: 1Атхократические подчиняются силе воли рукля 2Технократические рабки подчиняются производственному проц 3Бюрократические подчиняются организационному порядку в ущерб делу Персонализированные упре отношения:...