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

Лекція №5

INT – команда програмного переривання.

INT <on>

<on> - без знакове значення розміром в 1 Б, визначає значення N вектора переривань. Ті ж самі дії, що в разі зовнішнього переривання: здійснюється перехід на процедуру обробки переривання, остання команда, що виконується – REТ, що повертає CS, IP.

Окремо від цих команд стоїть команда INT3, що має довжину 1Б, використовується програмами – налагоджувачами (Turbo Debugger).

Механізм налагоджувача.

Здійснюється процедура обробки переривання, яка виводить на дисплей вміст регістрів, прапорців і певної ділянки пам’яті, дешифрує код команди, який ми зберегли в певній комірці пам’яті, визначає довжину, відновлює код поточної команди, і завдяки визначеній довжині зберігає код наступної, а на її місце записує INT3.

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

<ім’я> PROC [<тип>]; NEAR | FAR

PF за замовченням – NEAR

кінець процедури - <ім’я> ENDP

RET – код повернення.

Тип процедури визначає тип повернення NEAR або FAR.

В умовах високого рівня існує 2 типа підпрограм процедури (PROCEDURE) та функцій (FUNCTION).

Підпрограма-функція повертає в основну програму тільки одне значення, яке за узгодженням в мовах програм передається через регістр-акумулятор (безпосереднє значення або його адреса). Тому функція використовується, як елемент виразу, які в мовах програм використовують значення цієї функції через регістр-акумулятор АХ.

Команди пересилок даних:

MOV <DEST>, <SOURCE>

(операнд (операнд-

приймальник) джерело)

Операнд – джерело пересувається в операнд приймальника.

Регістр – регістр SR – R

Регістр – пам’ять P – SR

Пам’ять – регістр SR – П

Регістр – безпосередній операнд П – SR

Пам’ять – безпосередній операнд

Сегментний регістр – безпосередній операнд забороняється

MOV AX, DATA

MOV DS, AX

Команда MOV не змінює ознак результату.

Команда обміну даних

XCHG <On1>, <On2>

Формати

Регістр - пам’ять

Регістр – регістр

Пам’ять – регістр

При виконанні цієї команди вміст операндів, що вказані обмінюються місцями

Команди введення/виведення:

IN – команда введення.

AL, <N порту> не >255

В залежності від типу контролера використовуються дані розміром в байт або слово.

При використанні цієї команди дані із регістра порта контролера пересувається а акумулятор.

Команди виведення (OUT)

OUT <N порту>, AX(AL)

При виконанні вміст регістра акумулятора пересилається у відповідний порт.

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

У більшості операторів Assembler операнди мають бути сумісними за типом, вони повинні мати тип байт або слово, але є виключення – IN,OUT.

Команди завантаження адрес:

LEA –завантаження дійсної адреси.

Команда LEA має постбайтну структуру.

За допомогою команди LEA можна скласти 3 операнда : LEA AX, 15 [BX,SI]

LDS – завантажує повну адресу операнда в один із регістрів загального призначення (внутрішня сегментна адреса) та в один із сегментів регістрів.

Приклад:

LEA SI, OP1

MOV SI, OFFSET OP1

LDS SI, STR1

STR DD_OP1

OP1 DW

Команда перекодування XLAT. При її виконанні код, що розміщений в регістрі AL перекодується згідно у таблицю перекодування.

Команди роботи із стеком:

PUSH <ОП 1> ОП записується в стек, відновлює зі стеку дані у вказаний

POP <ОП 1> ОП 1 (регістр або пам’ять)

PUSH F – зберігає регістри прапорців в стеку;

POP F – відновлює регістр прапорців.

Приклад: 2 ADD AL, 30H

2 CMP AL,19H

2 JLE FIN

2 ADD AL, 41H – 3AH

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