Міністерство освіти і науки України
Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра АПЕПС
ЗВІТ
з лабораторної роботи № 5
з дисципліни «Операційні системи»
Тема «Система команд. Команди пересилання даних. Робота з Турбо налагоджувачем»
Варіант № 17
Мета роботи:
Освоєння команд пересилання та отримання навичок налагодження асемблерних програм під керуванням Турбоналагоджувача TD.
Завдання:
Налагодьте програми відповідно до індивідуальних завдань, продемонструйте роботу програми в середовищі налагоджувача ТD. 17 варіант: Змініть на зворотний порядок букв у слові "АPМАL".
Теоретичні відомості:
Для пересилання даних використовується команда MOV, яка має формат:
Mov Приймач, Джерело, яка копіює дані з другого операнда (Джерело) у перший (Приймач).
Синтаксис:
MOV регістр/пам’ять, регістр/пам’ять/безпосередній_операнд
В якості приймача не можна використовувати регістр CS. Обидва операнди повинні бути одного розміра.
Команда XCHG обмінює дані операнда-джерела і операнда-приймача. Дані можуть бути обмінені між регістрами і регістрами і пам'яттю.
Формат: XCHG Приймач, Джерело
Синтаксис:
XCHG регістр/пам'ять, регістр/пам'ять
Команда LEA завантажує адресу пам’яті у регістр, має формат:
LEA Приймач, Джерело
Синтаксис:
LEA регістр, пам’ять
Операндом-приймачем може бути будь-який загальний регістр, операндом-джерелом може бути будь-який операнд в пам’яті. Виконавча адреса операнда-приймача розташовується в регістр-приймач.
Команда LEA мож використовуватися для обчислення виконавчої адреси операнда прямої адресації, хоча зазвичай це неефективно, тому що адреса операнда прямої адресації - константа, яка відома під час асемблювання.
LEA DX, STRING
MOV DX, OFFSET STRING
Обидві команди призводять до однакового результату, однак друга команда більш швидкодіюча.
Команда LEA є больш ефективною для обчислення виконавчих адресов непрямих операндів в пам’яті.
LEA DX, STRING[SI]
Окрім функції виведення рядка символів на екран 9Н, яка заноситься у старший байт регістра АХ, можна використати іншу функцію – 40Н, яка теж заноситься у старший байт регістра АХ. Для цього використовується дексриптор для роботи з екраном або файлом. Дексриптор – це число, яке вказує куди здійснюється виведення інформації: 00 – у файл, 01 – на дисплей. Функція 40Н переривання INT 21H призначена для роботи з дисплеєм. Для виклику цієї функції необхідно завантажити в регістри наступні значення: АН =40Н (код функції), ВХ=01 (дескриптор), СХ=Кількість символів, що виводиться, DX=Адреса рядка символів, що виводиться.
Хід роботи:
Створив асемблер програму згідно завданню свого варіанта
Код Lab5.asm
.model small
.stack 100h
.data
mas db 'APMAL $'
CR_LF db 0dh,0ah, '$'
.code
start:
mov ax, @data
mov ds, ax
mov ah, 40h
mov bx, 01
mov cx, 5
lea dx, mas
int 21h
mov ah, 9h
mov dx, offset CR_LF
int 21h
mov al, mas+0
xchg mas+4, a
xchg al, mas+0
mov al, mas+1
xchg mas+3, al
xchg al, mas+1
mov ah, 40h
mov bx, 01
mov cx, 5
lea dx, mas
int 21h
mov ah, 4ch
int 21h
end start
Результат виконання Lab4.exe
Висновок:
На цій лабораторній роботі я освоїв команд пересилання та отримання навичок налагодження асемблерних програм під керуванням Турбоналагоджувача TD. Написав асемблер програму яка виводила потрібне слово у зворотньому порядку. Створив виконувальний файл .exe для програми. Продемонстрував її роботу та її образ в пам’яті. Отримав очікуваний результат. APMAL перетворився на LAMPA.Труднощів не зустрів.