- •Міністерство освіти і науки, Молоді та спорту україни Львівський коледж Державного університету інформаційно-комунікаційних технологій
- •Інструкція до лабораторної роботи №4
- •Лабораторна робота № 4
- •Короткі теоретичні відомості
- •1.1 Команди передачі інформації
- •1.1.1 Команди пересилання даних
- •1.2 Принципи організації стеку
- •1.3 Команди роботи зі стеком
- •Постановка завдання
- •Варіанти індивідуальних завдань
- •Методичні вказівки
- •Контрольні запитання
- •Джерела інформації
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.
Постановка завдання
Використовуючи середовище емулятора МП і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 Лістинг програми
Зміщення |
Код (Hex) |
Мнемокод команди |
К-сть байт |
Коментар |
100 |
B8 |
MOV AX, 0000h |
3 |
Код операції – запис числа 0000h в регістр AX |
101 |
00 |
|
|
Молодший байт числа |
102 |
00 |
|
|
Старший байт числа |
|
|
|
|
|
Використовуючи покроковий режим роботи емулятора, проаналізувати хід виконання програми. Заповнити табл..2 результатів досліджень.
Варіанти індивідуальних завдань
Варіанти індивідуальних завдань до даної лабораторної роботи наведені у табл.. 3.
Методичні вказівки
Увійти в середовище емулятора Emu8086.
Створити новий проект типу “com” під власним іменем.
У створеному проекті набрати текст програми відповідно до п.2.1 і індивідуального завдання.
Скомпілювати створений проект.
Проаналізувати повідомлення про помилки, якщо такі мають місце. Записати повідомлення у звіт до лабораторної роботи. Пояснити причини виникнення помилок і вказати шляхи їх усунення.
Після успішного завершення процедури компілювання проекту перейти до аналізу роботи створеної програми відповідно до п.п.2.2 і 2.3, використовуючи покроковий режим роботи емулятора.
В процесі аналізу роботи програми контролювати і записувати зміни вмісту регістрів, що приймають участь в роботі програми.
Зміст звіту
Назва теми.
Мета роботи.
Індивідуальне завдання.
Лістинг програми відповідно до п.2.2 з відповідними коментарями.
Результати досліджень регістрів відповідно до п.2.3.
Відповіді на контрольні запитання.
Висновки, в яких дати характеристику досліджуваних команд.
