Система команд. Команди пересилання даних . Робота з Турбоналагоджувачем
Інформація про навчальний заклад
ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
О
Факультет:
ІСМ
Кафедра:
Не вказано
Інформація про роботу
Рік:
2022
Тип роботи:
Лабораторна робота
Предмет:
Операційні системи
Частина тексту файла
Міністерство освіти і науки України
Національний технічний університет України
«Київський політехнічний інститут ім. І. Сікорського»
Кафедра автоматизації проектування енергетичних процесів і систем
Лабораторна робота № 5
з дисципліни «Операційні системи»
«Система команд. Команди пересилання даних . Робота з Турбоналагоджувачем»
Робота студентки 1 курсу групи ТР-15, Чубукової Анастасії
Перевірила д.т.н., проф. Левченко Л.О.
КИЇВ 2022
Мета: Освоєння команд пересилання та отримання навичок налагодження асемблерних програм під керуванням Турбоналагоджувача TD .
Індивідуальне завдання: Побудуйте символьний рядок виду "a+b++c+abc+ba $" із символів 'а', 'b', ' с' ,' +'.
Теоретична частина
Для пересилання даних використовується команда 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.
Найпоширенішою в інтернеті кодуванням є UTF-8 - кодова сторінка 65001. Вона включає в себе більше двох мільйонів символів: всі можливі сучасні алфавіти, цифри, розділові знаки, математичні та спеціальні символи, музичні знаки і символи вимерлих форм писемності. Для зміни кодової сторінки в командному інтерпретаторі cmd.exe використовується команда chcp:
Chcp <код>, наприклад, Chcp 1251.
Також потрібно вибрати шрифт Lucida Console. Для цього необхідно правою кнопкою в заголовку вікна DOSBox Status Window вибрати команду Свойства вкладка Шрифт вибрати шрифт Lusida Console.
Виконання завдання
Код програми
;Лабораторна робота 5
;Виконала: Чубукова. А. О., гр. ТР-15, дата: 03.06.2022
;Команди пересилання
.model small ;модель пам'яті для exe файлів
.stack 100h ;виділення PSP 256 байт
Datas segment ;початок сегменту даних
String db 'a' ;змінні символів, з яких утворюється символьний рядок
Db 'b'
Db 'c'
Db '+'
CR_LF db 0dh,0ah, '$'
Datas ends
Codes segment
Assume cs:Codes,ds:Datas
First:
mov ax, Datas
mov ds, ax
mov ah, 40h ;підготовка і виведення вихідного рядка String засобами DOS
mo...
Завантаження файлу
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше