Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASM_Lab4.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
164.35 Кб
Скачать

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.

    2. Створити новий проект типу “com” під власним іменем.

    3. У створеному проекті набрати текст програми відповідно до п.2.1 і індивідуального завдання.

    4. Скомпілювати створений проект.

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

    6. Після успішного завершення процедури компілювання проекту перейти до аналізу роботи створеної програми відповідно до п.п.2.2 і 2.3, використовуючи покроковий режим роботи емулятора.

    7. В процесі аналізу роботи програми контролювати і записувати зміни вмісту регістрів, що приймають участь в роботі програми.

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

    1. Назва теми.

    2. Мета роботи.

    3. Індивідуальне завдання.

    4. Лістинг програми відповідно до п.2.2 з відповідними коментарями.

    5. Результати досліджень регістрів відповідно до п.2.3.

    6. Відповіді на контрольні запитання.

    7. Висновки, в яких дати характеристику досліджуваних команд.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]