Система команд. Команди пересилання даних . Робота з Турбоналагоджувачем

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
О
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2022
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Операційні системи

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Теплоенергетичний факультет Кафедра автоматизації проектування енергетичних процесів і систем Звіт до лабораторної роботи №5 з дисципліни «Операційні системи» Тема «Система команд. Команди пересилання даних . Робота з Турбоналагоджувачем» Варіант 12 КИЇВ-2022 Мета роботи : освоєння команд пересилання та отримання навичок налагодження асемблерних програм під керуванням Турбоналагоджувача TD. Короткий теоретичний опис Для пересилання даних використовується команда 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=Адреса рядка символів, що виводиться. За замовчанням в Dosbox командний інтерпретатор cmd.exe використовує кодову сторінку 866 (DOS кодування). Для відображення кириличних символів компанія Microsoft для ОС Windows розробила русифікатор Windows в кодуванні win 1251. Для зміни кодової сторінки в командному інтерпретаторі cmd.exe використовується команда chcp: Chcp <код>, наприклад, Chcp 1251. Також потрібно вибрати шрифт Lucida Console. Для цього необхідно правою кнопкою в заголовку вікна DOSBox Status Window вибрати команду Свойства вкладка Шрифт вибрати шрифт Lusida Console. Завдання :Розмістити в порядку спадання цифри в символьному рядку виду " 97154823$". Код програми ;Лабораторна робота №5 ;Виконала: Ткаченко Майя Вадимівна, ТР-15, 02.06.22 ;Команди пересилання ;Варіант-12.Завдання:Розмістити в порядку спадання ;цифри в символьному рядку виду " 97154823$" .model small .stack 100h data segment range db "97154823 $" CR_LF db 0dh,0ah, "$" data ends commands segment assume cs:commands,ds:data pochatok: ;<~~ Виведення початкового рядка ~~> mov ax,data ;запис адреси сегменту даних в регістр ах mov ds,ax ;запис вмісту ах (адреси сегменту даних) в регістр сегменту даних mov ah, 40h ;підготовка і виведення початкового масиву засобами DOS mov bx, 0 mov cx, 8 ;кількість елементів, які виводяться lea dx, range int 21h mov ah, 9h ;виведення на екран mov dx, offset CR_LF ; перехід на новий рядок int 21h ;<<<== Перестановка елементів рядка ==>>> mov ah, range+5 ;записуємо в регістр аh 5-те значення рядка xchg range+1, ah xchg range+2, ah xchg range+7, ah xchg range+5, ah ;<<<== Кінець перестановки ==>>> ;<~~ Виведення рядка після перестановки ~~> mov ah, 40h mov bx, 0 mov cx, 8 lea dx,range int 21h mov ah, 4ch ;повернення у середовище DOS int 21h commands ends end pochatok Створення файлу з розширенням EXE / Робота з TD Вигляд TD після запуску. / Натискаємо F8 -покрокове виконання програми. / Регістр АХ зазнає змін оскільки туди ми завантажуємо адресу початку сегменту даних. Також зазнав змін регістр вказівник-команд (IP), з минулих робіт пам’ятаємо, що він змінюватиметься постійно, оскільки вказує на поточну команду. / Бачимо, що зазнав змін регістр DS оскільки туди ми завантажили вміст регістру АХ. / Регістр АХ зазнав змін, оскільки його старші біти були задіяні в виклику функції 40Н. / Ми записали в регістр СХ кількість елементів, що виводятьтся,тому можна побачити, як він змінив своє значення. / Також під час перестановки елементів, активними є лише регістри АХ і ІР. Результати покрокового виконання програми. / Результати роботи з TD після переходу в консольний режим. / Висновок Під час виконання даної лабораторної роботи освоєно команди пересилання та отримано навички налагодження асемблерних програм під керуванням Турбоналагоджувача TD. Написано програму, яка переставляє елементи рядка в порядку спадання, проаналізовано вмістр регістрів під час покрокового виконання програми в TD.
Антиботан аватар за замовчуванням

14.06.2023 20:06-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!