15279

Команди і директиви мови Асемблер

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

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

Лабораторна робота № 4 Тема: Команди і директиви мови Асемблер. Мета роботи: Набути навичок застосування асемблерних команд передачі інформації. Засвоїти способи адресування операндів вказаних груп команд та алгоритми їх виконання.

Украинкский

2013-06-11

122.5 KB

2 чел.

PAGE  6

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

Тема: Команди і директиви мови Асемблер.

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

 

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

1.1 Команди передачі інформації

1.1.1 Команди пересилання даних

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

Команда XCHG взаємозамінює значення двох операндів. Вона виконується за наступним алгоритмом:

operand1 < - > operand2.

Команда підтримує наступні формати:

XCHG REG, mem

XCHG mem, REG

XCHG REG, REG.

Команда LAHF завантажує в регістр AH 8 молодших біт регістру прапорців F. Це безоперандна команда.

Команда LEA завантажує ефективну адресу комірки пам’яті в заданий регістр. Команда підтримує єдиний формат:

LEA REG, memory

і виконується за алгоритмом:

REG = address of memory (offset).

1.2 Принципи організації стеку

Стековим запам’ятовуючим пристроєм або стеком називають запам’ятовуючий пристрій, що працює за принципом: останній увійшов – перший вийшов (LIFO – Last Input First Output), тобто пристрій з послідовним доступом, в якому порядок зчитування даних є обернений до порядку запису. В МПС стек використовують при звертаннях до підпрограм і при обробленні переривань, тобто у випадках, коли потрібно перервати хід виконання основної програми і передати керування підпрограмі чи обробнику переривань.

Організація стеку може бути апаратною або апаратно-програмною.

У першому випадку стек реалізують з використанням регістрового файлу (набору регістрів). Регістри сполучені таким чином, що забезпечується паралельний зсув інформації від першого регістру, який називають вершиною стеку, до останнього регістру. Таким чином останній запис завжди знаходиться у вершині стеку, звідки і починається зчитування даних. Порядок запису/читання стеку при такій організації ілюструє рис.1.

Номер комірки стеку

Порядок розташування даних у стеку

m

D1(n)

m-1

D2(n)

2

Dm-1(n)

Вершина стеку→

1

Dm(n)

Порядок запису у стек

Порядок читання стеку

Рисунок 1 – Порядок запису/читання стеку при його апаратній організації

Організація стеку m×n (m – число слів у стеку, n – розрядність слова стеку) залежить від конкретного мікропроцесора. Для багатьох мікропроцесорів максимальне число слів, що можуть зберігатися у стеку, не перевищує декількох десятків.

При апаратно-програмній організації, що має місце в сучасних персональних комп’ютерах, під стек виділяється частина адресного простору оперативного запам’ятовуючого пристрою (ОЗП) МПС. При цьому стек розташовують у швидкодіючих  ОЗП статичного типу. Для адресування даних, що поміщаються у стек, використовують спеціальний регістр – вказівник стеку (Stack Pointer), який містить адресу останньої зайнятої комірки стеку. Якщо стек пустий, то вказівник стеку містить адресу вершини стеку. При запису даних у стек вміст вказівника стеку кожний раз зменшується на 1 при організації стеку байтами (SP:=SP–2) і на 2 – при організації стеку словами (SP:=SP–2), а при читанні – відповідно збільшується на 1 (SP:=SP+1) у першому випадку та на 2 (SP:=SP+2) – у другому випадку. При апаратно-програмній організації стеку зсуву даних немає, як це мало місце при апаратній організації стеку. Роботу стеку при його апаратно-програмній організації ілюструє рис.2 (організація стеку байтами: n=8).

Адреса комірки стеку (SP)

Порядок розташування даних у стеку

00…00

Dm(n)

00…01

Dm-1(n)

Am-2

D2(n)

Вершина стеку→

Am-1

D1(n)

Рисунок 2 – Порядок запису/читання стеку при його апаратно-прогрмній організації

Для організації стеку відведений сегмент, що складається з m комірок ОЗП, адресування яких всередині сегменту є лінійним в діапазоні від нуля до адреси Am-1.

 1.3 Команди роботи зі стеком

Команда PUSH зберігає 16 біт величину в стеку. Команда підтримує наступні формати: 

PUSH REG

PUSH SREG
PUSH memory

Алгоритм виконання команди:

SP = SP - 2

SS:[SP] (вершина стеку) = operand.

Команда PUSHF зберігає регістр прапорців у стеку. Команда використовується без операнду і виконується за алгоритмом:

SP = SP - 2

SS:[SP] (вершина стеку) = flags.

Команда POP повертає 16 біт величину зі стеку. Команда підтримує наступні формати:

POP REG

POP SREG
POP memory

Алгоритм виконання команди:

operand = SS:[SP] (вершина стеку)

SP = SP + 2.

Команда POPF повертає регістр прапорців зі стеку. Команда використовується без операнду і виконується за алгоритмом:

flags = SS:[SP] (вершина стеку)

SP = SP + 2.

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

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

ORG 100H

MOV OP1, C1H

MOV OP2, C2H

XCHG OP1, OP2

LAHF

XCHG R1, AH

LEA R2, mem1

MOV SR, R2

PUSH R1

PUSH SR

PUSH mem1

MOV R3, 0

MOV R1, R3

MOV SR, R3

MOV mem1, R3

POP R1

POP SR

POP mem1

RET

MEM1 dw C3H

END.

  1.  Використовуючи середовище емулятора скласти лістинг програми (табл..1)

Таблиця 1 Лістинг програми

Зміщення

Код (Hex)

Мнемокод команди

К-сть байт

Коментар

100

B8

MOV AX, 0000h

3

Код операції – запис числа 0000h в регістр AX

101

00

Молодший байт числа

102

00

Старший байт числа

  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.  Дайте характеристику команди XCHG.
    2.  Дайте характеристику команди LEA.
    3.  . Дайте характеристику команди LAHF.
    4.  Яке призначення стекової памяті?
    5.  Поясніть порядок запису/читання стеку при його апаратно програмній організації.
    6.  Дайте характеристику команди PUSH.
    7.  Дайте характеристику команди POP.
    8.  Дайте характеристику команд PUSHF і POPF.


Таблиця 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

Таблиця 3 Індивідуальні завдання до лабораторної роботи №4

№ варіанту

OP1

OP2

R1

R2

R3

SR

C1h

C2h

C3h

Примітка

1

[200H]

AX

BL

SI

DX

ES

A501H

105AH

dw A0H

2

BX

[220H]

CH

DI

AX

DS

B0C5H

5C0BH

dw B0H

3

[BX]

CX

DL

SI

AX

SS

C1D2H

2D1CH

dw C0H

BX<230H

4

DX

[BX]

CL

DI

AX

ES

D505H

505DH

dw D0H

BX<220H

5

[DI]

AX

BH

SI

CX

DS

E102H

201EH

dw E0H

DI<200H

6

BX

[SI]

DH

DI

AX

SS

F307H

703FH

dw F0H

SI<210H

7

[BX+DI]

AX

DL

SI

CX

ES

E469H

964EH

dw A5H

BX<220H; DI<AH

8

CX

[BX+SI]

DH

DI

AX

DS

D103H

301DH

dw D5H

BX<200H; SI<10H

9

AX

[200H]

BL

SI

DX

SS

105AH

A501H

dw E0H

10

[220H]

BX

CH

DI

AX

ES

5C0BH

B0C5H

dw F0H

11

CX

[BX]

DL

SI

AX

DS

2D1CH

C1D2H

dw A5H

BX<230H

12

[BX]

DX

CL

DI

AX

SS

505DH

D505H

dw D5H

BX<220H

13

AX

[DI]

BH

SI

CX

ES

201EH

E102H

dw A0H

DI<200H

14

[SI]

BX

DH

DI

AX

DS

703FH

F307H

dw B0H

SI<210H

15

AX

[BX+DI]

DL

SI

CX

SS

964EH

E469H

dw C0H

BX<220H; DI<AH

16

[BX+SI]

CX

DH

DI

AX

ES

301DH

D103H

dw D0H

BX<200H; SI<10H


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

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

PAGE  2


PAGE  2


PAGE  


PAGE  7


 

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

18051. Краткосрочная финансовая политика предприятия. Учебное пособие 2.77 MB
  Н.М. Крюкова Учебное пособие. Содержание и значение финансовой стратегии фирмы. Определение целей и задач бизнеса. Содержание и порядок разработки финансовой политики фирмы. Что п...
18052. Основы радиации. Радиационное загрязнение территории РБ 599 KB
  1. Радиационное загрязнение территории РБ. Радиоактивность явл результатом процесса кот происх внутри ядер. НТР принесла чел не только технический прогресс но и истощение природных ресурсов загрязнение окр среды усиление техногенной экологической и природной опас
18053. Административно-процессуальное право: Курс лекций 1.11 MB
  Административно-процессуальное право: Курс лекций./ Сост.: В.В. Степанюк Орёл: Орловский юридический институт МВД России 2009 г. 172 с. В данном курсе лекций представлены конспекты лекций по первому разделу: Введение в административнопроцессуал
18054. ТИПИЧНЫЕ ОШИБКИ ПРИ НАЧИСЛЕНИИ НАЛОГОВ И СТРАХОВЫХ ВЗНОСОВ 2.87 MB
  ТИПИЧНЫЕ ОШИБКИ ПРИ НАЧИСЛЕНИИ НАЛОГОВ И СТРАХОВЫХ ВЗНОСОВ Ф.Н. Филина И.А. Толмачев Под редакцией Т.Н. Межуевой. НАЛОГ НА ПРИБЫЛЬ 1.1. Доходы В соответствии со ст. 41 Налогового кодекса РФ доходом признается экономическая выгода в денежной или натурал...
18055. Анализ деятельности коммерческого банка 1.36 MB
  Л.В. КОХ Ю.В. КОХ Анализ деятельности коммерческого банка Учебное пособие Раскрываются основные направления экономического анализа деятельности коммерческого банка. Рассматриваются вопросы анализа состояния и использования собственных и привлеченных средств...
18056. Організація, планування та управління підприємствами галузі: Конспект лекцій 1.35 MB
  Стахурський В.О. Організація планування та управління підприємствами галузі: Конспект лекцій для студ. напрямів 0902 Інженерна механіка 0905 Енергетика 0925 Автоматизація та компютерно-інтегровані технології всіх форм навчання. К. : НУХТ 2009. 113 с. АНОТАЦІЯ К
18057. Базы данных, учебное пособие 1.41 MB
  Базы данных Допущено Учебно-методическим объединением вузов по образованию в области автоматизированного машиностроения УМО АМ в качестве учебного пособия для студентов высших учебных заведений обучающихся по направлениям подготовки бакалавров и магистров.
18058. Проблемы подростковой адаптации с позиций профилактики и психотерапии личностных и поведенческих расстройств и зависимости от психоактивных веществ 1.06 MB
  Проблемы подростковой адаптации с позиций профилактики и психотерапии личностных и поведенческих расстройств и зависимости от психоактивных веществ М. 325 с. Вместо введения. История создания книги Психическая адаптация к требованиям социальной среды. Базисные ком...
18059. Практикум по арбитражному процессу 1.2 MB
  Практикум по арбитражному процессу Учебное пособие для студентов юридических вузов и факультетов Под редакцией доктора юридических наук профессора В. В. Яркова и кандидата юридических наук доцента С.Л. Дегтярева 2е издание переработанное и дополненное .: ...