15279

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

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

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

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

Украинкский

2013-06-11

122.5 KB

1 чел.

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


 

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

71679. Заполнение таблиц MS EXEL данными и формулами 31.62 KB
  Выполнить задание 1 (Формирование структуры таблицы и заполните ее постоянными значениями), используя технологию выполнения операций в конце задания Выполнить задание 2 Технология работы с формулами на примере подсчета количества разных оценок в группе в экзаменационной...
71680. ОПРЕДЕЛЕНИЕ МОМЕНТА ИНЕРЦИИ В МАШИНЕ АТВУДА 78.94 KB
  Цель работы: изучение вращательного и поступательного движений на машине Атвуда, определение момента инерции блока и момента сил трения в оси блока. Описание установки и её назначение. Машина Атвуда является настольным прибором, ее изображение приведено на рис. 3.1. На вертикальной стойке...
71682. Перевод чисел из одной позиционной системы счисления в другую 259 KB
  Цель работы. Изучение методов и отработка навыков перевода чисел из одной позиционной системы счисления в другую. Количество различных цифр используемых в позиционной системе определяет название системы счисления и называется основанием -ой системы счисления.
71683. Осциллограф, знакомство с прибором, приобретение практических навыков применения 202.46 KB
  Цель работы: изучить устройство осциллографа, научиться работать с ним. Приборы и инструменты: осциллограф, генератор электрических сигналов, полигон для сборки схем. Схема установки(передняя панель осциллографа): Результаты измерений: 1) Задание 6. Знакомство с режимом
71684. Определение иэффективности теплового насоса 25.5 KB
  Цель работы: определить эффективность работы теплового насоса в зависимости от температур двух резервуаров энергии: низкопотенциального и высокопотенциального. Изучить функцию и принцип работы расширительного клапана теплового насоса.
71685. Русскоязычные вербальные ИПС: сравнительный анализ 88 KB
  Перейти на сайт поисковой системы Google затем Яндекс и Рамблер. Найти в каждой системе ссылки на ее описание в целом на описание языка запросов интерфейсов Справка Помощь Расширенный поиск и т. Обратить внимание на то что возможности систем в простом и в расширенном поиске различаются.
71686. Классификационные ИПС 31 KB
  Для каждого музея: скопировать краткие описания указанных музеев в каталоге в файл отчета Report1; указать индекс цитируемости в виде числа и лигу в виде словесного названия для данных музейных сайтов самостоятельно посмотреть понятия индекс цитируемости; перейти по информационной гиперссылке...
71687. EXCEL СОЗДАНИЕ БАЗ ДАННЫХ. ФОРМА. ФИЛЬТР. УСЛОВИЯ ОТБОРА. СОРТИРОВКА 130.5 KB
  База данных. Одна из задач, для которых часто используется Excel, - это организация баз данных. Термин база данных можно применить к любой совокупности связанной информации объединенной вместе по определенному признаку. Основным назначением баз данных является обеспечение ввода, хранения...