15281

Застосування асемблерних команд передачі управління. Алгоритми їх виконання

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

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

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

Украинкский

2013-06-11

110.5 KB

12 чел.

PAGE  7

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

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

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

 

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

  1.  Команди передачі управління

До цієї групи відносяться команди, які дозволяють контролювати процес виконання програми. Це команди переходів. Розрізняють команди безумовного переходу і команди переходу за умовою.

Безумовний перехід. Базовою командою, що передає керування в іншу точку програми, є команда JMP. Команда має наступний синтаксис:

JMP label,

де label -  це мітка, яка позначається іменем і знаком “:” після нього.

Ім’я мітки – це набір знаків, проте, ім’я  не може починатися з цифри. Нижче приведені приклади  правильних імен міток

label1:
label2:
a:

Мітка може записуватися в окремій стрічці тексту програми або перед командою, наприклад

x1:
MOV AX, 1

x2: MOV AX, 2

Команда JMP забезпечує передачу керування як вперед так і назад. Проте, перехід (стрибок) може здійснюватися тільки в межах сегменту (65,535 байт).

 Короткий перехід за умовою. На відміну від команди JMP, що забезпечує безумовний перехід, є команди, що забезпечують перехід тільки при виконанні певної умови. Такі команди поділяються на три групи. До першої груп відносяться команди, що аналізують один прапорець регістру стану. До другої групи відносяться команди, що порівнюють числа як знакові, і до третьої групи відносяться команди, що порівнюють числа як беззнакові.  

В табл..1 наведені команди першої групи.

Треба відмітити, що є деякі команди, які мають різні назви, проте дизасемблюються в один і той самий машинний код, наприклад, команда JE дизасемблюється як JZ,  команда JC дизасемблюється як JB. Різні назви використовують для кращого розуміння тексту програми.

Таблиця 1 – Команди переходу за умовою, що тестують один прапорець

Команда

Опис

Стан прапорця

Протилежна команда

JZ , JE

Перехід, якщо нуль (Zero) (рівно (Equal))

 ZF = 1

JNZ, JNE

JC , JB, JNAE

Перехід, якщо перенос (Carry) (менше (Below), не більше рівно (Not Above Equal))

 CF = 1

JNC, JNB, JAE

JS

Перехід, якщо знак (Sign)

 SF = 1

JNS

JO

Перехід, якщо переповнення (Overflow)

 OF = 1

JNO

JPE, JP

Перехід, якщо паритет парний (Parity Even)

 PF = 1

JPO

JNZ , JNE

Перехід, якщо не нуль (Not Zero) (не рівно (Not Equal))

 ZF = 0

JZ, JE

JNC, JNB, JAE

Перехід, якщо не перенос (NotCarry) (не менше (Not Below), більше рівно (Above Equal))

 CF = 0

JC, JB, JNAE

JNS

Перехід, якщо не знак (Not Sign)

 SF = 0

JS

JNO

Перехід, якщо не переповнення (Not Overflow)

 OF = 0

JO

JPO, JNP

Перехід, якщо паритет непарний (Parity Odd) (немає паритету (No Parity))

 PF = 0

JPE, JP

В табл.2 представлені команди переходів для знакових чисел.

Таблиця 2 – Команди переходів для знакових чисел

Команда

Опис

Стан прапорця

Протилежна команда

JE , JZ

Перехід, якщо рівно (Equal) (=)
Перехід, якщо нуль (Zero)

ZF = 1

JNE, JNZ

JNE , JNZ

Перехід, якщо не рівно (Not Equal) (<>)
Перехід, якщо не нуль (Not Zero)

ZF = 0

JE, JZ

JG , JNLE

Перехід, якщо більше (Greater) (>)
Перехід, якщо не менше рівно (Not Less or Equal) (not <=).

ZF = 0
and
SF = OF

JNG, JLE

JL , JNGE

Перехід, якщо менше (Less) (<).
Перехід, якщо не більше рівно (Not Greater or Equal) (not >=).

SF <> OF

JNL, JGE

JGE , JNL

Перехід, якщо більше рівно (Greater or Equal) (>=).
Перехід, якщо не менше (Not Less) (not <).

SF = OF

JNGE, JL

JLE , JNG

Перехід, якщо менше рівно (Less or Equal) (<=).
Перехід, якщо не більше (Not Greater) (not >).

ZF = 1
or
SF <> OF

JNLE, JG

Примітка: <> - цей знак означає «не рівно».

В табл. 3 представлені команди переходів для беззнакових чисел.

Таблиця 3 – Команди переходів для беззнакових чисел

Команда

Опис

Стан прапорця

Протилежна команда

JE , JZ

Перехід, якщо рівно (Equal) (=)
Jump if Zero.

ZF = 1

JNE, JNZ

JNE , JNZ

Перехід, якщо не рівно (Not Equal) (<>)
Перехід, якщо не нуль (Not Zero)

ZF = 0

JE, JZ

JA , JNBE

Перехід, якщо більше (Above) (>)
Перехід, якщо не менше рівно (Not Below or Equal) (not <=).

CF = 0
and
ZF = 0

JNA, JBE

JB , JNAE, JC

Перехід, якщо менше (Below) (<).
Перехід, якщо не більше рівно (Not Above or Equal) (not >=)
Перехід, якщо перенос (Carry)

CF = 1

JNB, JAE, JNC

JAE , JNB, JNC

Перехід, якщо більше рівно (Above or Equal) (>=).
Перехід, якщо не менше (Not Below) (not <).
Перехід, якщо не перенос (Not Carry)

CF = 0

JNAE, JB

JBE , JNA

Перехід, якщо менше рівно (Below or Equal) (<=)
Перехід, якщо не більше (Not Above) (not >)

CF = 1
or
ZF = 1

JNBE, JA

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

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

include 'emu8086.inc'

ORG 100h

  MOV AL, 5

  CMP AL, 5

  JZ  M1

  PRINT 'AL<>5.'

  JMP M2

M1:

  PRINT 'AL=5.'

M2:

 MOV AL, 10000000b   ; AL = -128

  OR  AL, 0           ; встановлює прапорець SF=1

  JS M3

  PRINT не знак.'

  JMP M4

M3:

  PRINT 'знак.'

M4:

   MOV AL, 2

  ADD AL, 3

  JNC  M5

  PRINT 'has carry.'

  JMP M6

M5:

  PRINT 'no carry.'

M6:

  RET

END.

  1.  Використовуючи середовище емулятора дослідити алгоритм виконання команд переходів для різних значень операндів в командах, що передують командам переходів та впливають на стан відповідних прапорців.
    1.  На основі досліджень п.2.2 скласти алгоритм виконання програми, в якому привести значення прапорців, що аналізуються відповідними командами переходів.  

Приклад складання фрагменту алгоритму вищенаведеної програми:

  1.  Варіанти індивідуальних завдань

  1.  Варіанти індивідуальних завдань до даної лабораторної роботи наведені у табл.. 4.

Таблиця 4 – Варіанти індивідуальних завдань

№ варіанту

Команди

1

2

3

4

5

6

7

1

JZ

JS

JNC

JG

JNL

JA

JNC

2

JE

JC

JNS

JL

JNZ

JBE

JNAE

3

JC

JO

JNE

JGE

JNLE

JAE

JNBE

4

JB

JP

JNZ

JE

JNGE

JA

JNE

5

JS

JZ

JNO

JLE

JNG

JB

JNA

6

JO

JB

JNGE

JG

JNLE

JA

JNA

7

JP

JE

JNS

JL

JNGE

JBE

JNC

8

JS

JB

JAE

JGE

JNG

JZ

JNAE

9

JC

JS

JNAE

JE

JNL

JA

JNBE

10

JO

JZ

JNC

JLE

JNZ

JB

JNE

11

JP

JE

JNZ

JG

JNL

JAE

JNA

12

JZ

JO

JNE

JL

JNZ

JBE

JNC

13

JB

JP

JNE

JGE

JNLE

JZ

JNAE

14

JE

JC

JNO

JL

JNGE

JA

JNBE

15

JC

JB

JNE

JLE

JNG

JE

JNC

16

JO

JE

JNZ

JG

JNLE

JAE

JNA

Примітка: для команд 4-ї та 5-ї колонок в командах, що передують їх застосуванню, треба використовувати знакові числа.

  1.  Методичні вказівки

  1.  Увійти в середовище емулятора Emu8086.
    1.  Створити новий проект типу “com” під власним іменем.
    2.  У створеному проекті набрати текст програми відповідно до п.2.1 і індивідуального завдання.
    3.  Скомпілювати створений проект.
    4.  Проаналізувати повідомлення про помилки, якщо такі мають місце. Записати повідомлення у звіт до лабораторної роботи. Пояснити причини виникнення помилок і вказати шляхи їх усунення.
    5.  Після успішного завершення процедури компілювання проекту перейти до аналізу роботи створеної програми відповідно до п.п.2.2 і 2.3.
    6.  В процесі аналізу роботи програми контролювати і записувати зміну значень прапорців при виконанні команд, що впливають на їх значення.

  1.  Зміст звіту

  1.  Назва теми.
    1.  Мета роботи.
    2.  Індивідуальне завдання.
    3.  Текст програми.
    4.  Алгоритм роботи програми відповідно до п.2.3.
    5.  Відповіді на контрольні запитання.
    6.  Висновки, в яких дати характеристику досліджуваних команд.

  1.  Контрольні запитання
    1.  Які є типи команд переходів?
    2.  В яких межах забезпечується перехід командою JMP?
    3.  Що розуміють під коротким переходом?
    4.  Яким чином виконуються команди переходів за умовою?
    5.  Наведіть приклади команд, що впливають на стан прапорців регістру F.

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


Початок

L5

AL=5 ?

Ні

Так

Друк

AL=5

Друк

AL<>5

AL10000000b


 

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

83632. Назначение кабельного журнала и что отражено на листах кабельного журнала 30.27 KB
  В кабельном журнале описывается маркировка каждого кабеля откуда и куда он идет его марка длина кабельной линии и его назначение. Назначение: Всю необходимую информацию о кабелях можно представить непосредственно на схемах: можно указать марку длину способ прокладки кабеля. Однако при построении достаточно большой системы во избежание перегруженности чертежей удобнее вынести эти данные в отдельную таблицу оставив на схемах лишь присвоенные кабелям обозначения. Во время монтажа в кабельный журнал заносятся следующие сведения: номер...
83633. Выполнение чертежей оперативной блокировки на ПС. Что должно быть отражено на чертеже. Какие виды блокировки коммутационных оборудований используются на ПС 30.11 KB
  Основные требования к оперативной блокировке: Блокзамки блокировки должны запирать приводы разъединителей только в крайних положениях включено и отключено; они не должны запирать привод разъединителя в промежуточном положении; Оперативная блокировка не должна давать ложное разрешение на операции с разъединителями при исчезновении напряжения оперативного тока или неисправностях самой оперативной блокировки. Механическая блокировка это блокировка непосредственного действия которая может быть выполнена на близко...
83634. Нелинейные магнитные цепи при постоянных потоках 161 KB
  Для концентрации магнитного поля и придания ему желаемой конфигурации отдельные части электротехнических устройств выполняются из ферромагнитных материалов. Векторные величины характеризующие магнитное поле Наименование Обозначение Единицы измерения Определение Вектор магнитной индукции Тл тесла Векторная величина характеризующая силовое действие магнитного поля на ток по закону Ампера Вектор намагниченности А м Магнитный момент единицы объема вещества Вектор напряженности магнитного поля А м где Гн м магнитная постоянная Основные...
83635. Общая характеристика задач и методов расчета магнитных цепей 128 KB
  При этом для наглядности можно составить эквивалентную электрическую схему замещения исходной магнитной цепи с использованием которой выполняется расчет. При расчете магнитных цепей на практике встречаются две типичные задачи: задача определения величины намагничивающей силы НС необходимой для создания заданного магнитного потока заданной магнитной индукции на каком либо участке магнитопровода задача синтеза или ldquo;прямаяldquo; задача; задача нахождения потоков магнитных индукций на отдельных участках цепи по заданным...
83636. Нелинейные цепи переменного тока в стационарных режимах 136.5 KB
  Когда постоянная времени нагрева τ одного порядка с Т соотношения между переменными составляюшими напряжения и тока являются более сложными определяющими сдвиг по фазе между ними. Другой важной особенностью нелинейных элементов в цепи переменного тока является вызываемое ими появление высших гармоник даже при наличии в цепи только источников синусоидального напряжения и или тока. На этом принципе строится например ряд умножителей частоты а также преобразователей формы тока или напряжения.
83637. Графический метод с использованием характеристик по первым гармоникам 130 KB
  Основные этапы расчета: строится график зависимости нелинейного элемента для первых гармоник; произвольно задаются амплитудой одной из переменных например связанной с нелинейным элементом и по характеристике последнего находят другую переменную определяющую режим работы нелинейного элемента после чего принимая все величины синусоидально изменяющимися во времени на основании построения векторной диаграммы определяется амплитуда первой гармоники переменной на входе цепи; путем построения ряда векторных диаграмм для различных...
83638. Метод кусочно-линейной аппроксимации 134 KB
  Для каждого участка ломаной определяются эквивалентные линейные параметры нелинейного элемента и рисуются соответствующие линейные схемы замещения исходной цепи. Расчет каждой из полученных линейных схем замещения при наличии в цепи одного нелинейного элемента и произвольного числа линейных не представляет труда. При наличии в цепи переменного источника энергии рабочая изображающая точка будет постоянно скользить по аппроксимирующей характеристике переходя через точки излома.
83639. Метод эквивалентных синусоид (метод расчета по действующим значениям) 181 KB
  Катушка с ферромагнитным сердечником Нелинейная катушка индуктивности изображена на рис. Различают параллельную и последовательную схемы замещения катушки с ферромагнитным сердечником. Схемы замещения уравнения и векторные диаграммы для катушки c ферромагнитным сердечником Схема замещения Уравнения и соотношения для параметров Векторная диаграмма Параллельная Последовательная где где Примечание. Трансформатор с ферромагнитным сердечником Трансформатор с ферромагнитным сердечником изображен на рис.
83640. Переходные процессы в нелинейных цепях 165 KB
  На нелинейные цепи не распространяется принцип суперпозиции поэтому основанные на нем методы в частности классический или с использованием интеграла Дюамеля для расчета данных цепей не применимы. Отсутствие общности подхода к интегрированию нелинейных дифференциальных уравнений обусловило наличие в математике большого числа разнообразных методов их решения нацеленных на различные типы уравнений. Применительно к задачам электротехники все методы расчета по своей сущности могут быть разделены на три группы: аналитические методы...