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


 

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

47034. Виды ожогов. Классификация 47 KB
  Требования пожарной безопасности в учебных заведениях. В учебных классах и кабинетах следует размещать только необходимые для обеспечения учебного процесса мебель приборы которые должны храниться в шкафах на стеллажах; Число парт столов в учебных классах и кабинетах не должно превышать количества установленного нормами проектирования; С учащимися и студентами должны быть организованы занятия беседы по изучению правил пожарной безопасности в быту; Противопожарные системы и установки зданий должны постоянно содержаться в исправном...
47035. Проблема предметной деятельности и ее развития в развития в раннем детстве 47 KB
  Основное противоречие возраста: способ действия с предметом образец действия принадлежит взрослому а ребенок в то же время должен выполнять индивидуальное действие. Ведущий тип деятельности: предметная деятельность направленная на усвоение общественно выработанных способов действия с предметами. Цель возникает только в результате осуществления самого предметного действия. только после того как ребенок выпьет из чашки воду у него возникает цель пить из чашки воду Структура предметного действия: Действие состоит из ориентировочной и...
47036. Теория налогообложения 47.36 KB
  Теория Стоимость основных средств безвозмездно полученных от других предприятий налогом на прибыль: облагается не облагается если оборудование получено для разработки нефтяных и газовых месторождений не облагается если основные средства переданы с баланса на баланс предприятий потребительской кооперации по решению собственников не облагаются в любом случае Налоговая база по налогу на прибыль исчисляется: @нарастающим итогом с начала года по итогам каждого квартала по итогам года нарастающим итогом с начала каждого квартала ежемесячно...
47037. Определение адекватности построенной модели регрессии 47.5 KB
  Анализ остаточной компоненты остаточного ряда позволяет оценить качество полученнного уравнения регрессии. Модель считается адекватной исследуемому процессу если: 1 математическое ожидание значений остаточного ряда близко или равно нулю; 2 значения остаточного ряда случайны; 3 независимы; 4 подчинены нормальному закону распределения. Равенство нулю математического ожидания ряда остатков означает выполнение следующего соотношения: Однако в случае применения метода наименьших квадратов такая проверка является излишней поскольку...
47038. Права особи в Україні 47.5 KB
  Особисті права особи в Україні Громадянські та політичні права належать до так званого “першого покоління†прав людини. Саме ці права в першу чергу були проголошені французькою “Декларацією прав людини і громадянина†і “Біллем про права†який увійшов до складу Конституції США. Особисті громадянські права визначають свободу людини в сфері особистого життя його юридичну захищеність від будьякого незаконного втручання. До громадянських прав відноситься право приватної власності право на охорону сім’ї материнства і дитинства...
47041. Дистилляция в коньячном производстве. Её особенности при получении коньячного спирта. Используемое оборудование. Классический способ. Факторы, обуславливающие состав примесей различных фракций 48.12 KB
  Дистилляция вина – сложный физикохимический процесс во многом определяющий качество будущего коньяка. Классическая технология коньяка Шаранты предусматривает двукратную перегонку вина на кубовых аппаратах получивших название шарантских и выдержку полученного спирта дистиллята в дубовых бочках. В эти реакции вовлекаются как нелетучие соединения вина углеводы азотистые фенольные соединения нелетучие кислоты и др. В кубе во время кипячения вина происходит образование альдегидов спиртов кислот эфиров летучих фенолов и других...
47042. Трудовые ресурсы и человеческий капитал. Экономический рост – обобщающий результат функционирования национальной экономики 50.17 KB
  С периодом в несколько лет или десятилетий фаза экономического роста сменяется фазой снижения показателей. Факторами экономического роста именуются те явления и процессы которые определяют масштабы роста настоящего размера производства способности повышения эффективности и свойства роста. На макроэкономическом уровне ведущими показателями динамики экономического роста являются: рост размера ВВП ВНП либо НДС темпы роста ВВП ВНП и НД в расчете на душу населения; темпы роста промышленного производства в целом по главным отраслям и на душу...