Створення виконуваного коду асемблерної програми

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

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

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

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КН

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра інформаційних систем та мереж Лабораторна робота №1 на тему: Створення виконуваного коду асемблерної програми Тема роботи: створення виконуваного коду асемблерної програми Мета роботи: вивчити послідовність перетворення асемблерної програми для створення виконуваного коду. Хід роботи : Контрольні запитання: Послідовність перетворення асемблерної програми для утворення виконуваного коду. Призначення кроку компіляції асемблерної програми. Режими роботи компілятора. Призначення кроку редагування зв’язків програми. Режими роботи редактора зв’язків. Режими роботи програми відлагодження. Відповіді на контрольні запитання: Текст асемблерної програми створюється у вигляді одного або декількох файлів з розширенням *.asm. Після створення програми здійснюється її перетворення у машинний код. Для цього використовується один із компіляторів, наприклад tasm.exe або masm.exe. Задачею компілятора є виявлення синтаксичних помилок та створення машинного коду – файлу із розширенням *.obj (об’єктного файлу). Для перетворення об’єктного файлу у виконуваний файл *.exe використовується редактор зв’язків: TLINK. TASM [опції] *.asm [,*.obj] [,*.lst] [,*.crf] -- Замість символа ‘*’ вказується ім’я файлу. Квадратні дужки позначають необов’язкові параметри команди. Для запуску компілятора використовується ряд опцій, значення яких можна вивчити, запустивши команду tasm.exe з командного рядка. Наприклад, для включення в об’єктний файл інформації для програми відлагодження необхідно використати опцію /zi : “TASM /zi *.asm”. Для отримання файлу лістингу додатково можна використати опцію /la: “TASM /zi /la *.asm” “TLINK *.obj, *.exe, *.map, *.lib, *.def “ де *.obj – один або декілька об’єктних файлів; *.exe – виконуваний файл; *.map – карта розподілу пам’яті; *.lib – бібліотечні файли; *.def – файл визначення модуля програми. Обов’язковим є тільки перший параметр команди, що визначає ім’я об’єктного файлу. Якщо ім’я exe-файлу не вказано, то воно буде таким як ім’я obj-файлу. Команда може містити ряд опцій, значення яких можна вивчити, запустивши команду tlink.exe з командного рядка. Наприклад: “TLINK /v *.obj” - включити відлагоджувальну інформацію в exe-файл; “TLINK /t *.obj” - створити com-файл. При необхідності для перегляду результатів або для вивчення помилок у роботі програми можна використати програму відлагодження, наприклад td.exe . Для цього у командному рядку необхідно набрати TD.EXE *.EXE Замість символа ‘*’ необхідно вказати ім’я файлу. Порядок виконання роботи 1. Створити файл tasm.bat для компіляції програми: del %1.exe tasm /zi %1.asm tlink /v %1.obj del %1.obj del %1.map 2. Набрати подані нижче програми, зберегти їх у файлах з розширенням “.ASM ”. 3. Відкомпілювати набрані програми за допомогою командного рядка: tasm.bat назва файлу програми без розширення 4. Вивчити режими запуску компілятора та редактора зв’язків. 5. Отримати файли лістингу *.lst, розглянути та вивчити загальну структуру програм. 6. Запустити одержані exe-файли на виконання. 7. Запустити програму для відлагодження td.exe та вивчити режими її роботи. 8. Оформити звіт по роботі. Текст програми1: ; HELLO.ASM – Виведення повідомлення "Hello World" .MODEL small .STACK 100h .DATA HelloMessage DB 'Hello, world',13,10,'$' .CODE mov ax,@data mov ds,ax ;занести у DS сегментну частину адреси сегменту даних mov ah,9 ;функція DOS виведення рядка символів mov dx,OFFSET HelloMessage ; вказівник на рядок int 21h ; виведення рядка mov ah,4ch ;DOS terminate program function int 21h ;terminate the program END ; кінець програми Текст програми2: ; REVERSE.ASM – Виведення рядка у зворотньому порядку DOSSEG .MODEL SMALL .STACK 100h .DATA MAX_STR_LEN EQU 1000 String DB MAX_STR_LEN DUP(?) ReverseString DB MAX_STR_LEN DUP(?) .CODE mov ax,@data mov ds,ax ;set DS to point to the data segment mov ah,3fh ; номер функції DOS введення даних mov bx,0 ; дескриптор клавіатури mov cx,MAX_STR_LEN ; максимальна кількість символів mov dx,OFFSET String ; адреса рядка для введення int 21h ; ввести рядок and ax,ax ; чи введено будь-які символи? jz Done ; ні, перехід на кінець програми mov cx,ax ; записати кількість введених символів в регістр CX push cx ; запам’ятати регістр CX у стеку mov bx,OFFSET String ; занести у BX адресу введеного рядка mov si,OFFSET ReverseString; занести у SI адресу рядка результату add si,cx dec si ; адреса кінця рядка результату m1: mov al,[bx] ; отримати наступний символ введеного рядка mov [si],al ; записати цей символ у рядок результату inc bx ; вказівник на наступний символ введеного рядка dec si ; вказівник на наступний символ рядка результату loop m1 ; виконати цикл pop cx ; отримати зі стеку довжину рядка mov ah,40h ; номер функції DOS для виведення даних mov bx,1 ; дескриптор дисплея mov dx,OFFSET ReverseString ; адреса рядка для виведення int 21h ; надрукувати рядок Done: mov ah,4ch ; номер функції DOS для завершення програми int 21h ; завершити програму та вийти у DOS END ; кінець програми Результати комп’ютерної реалізації програми: Програма №1 виводить на консоль наступний рядок: 'Hello, world' та переводить позицію курсора на наступний рядок. Програма №2 зчитує з клавіатури рядок символів та виводить його на консоль в зворотньому порядку. Висновок: Я вивчив послідовність перетворення асемблерної програми для створення виконуваного коду.
Антиботан аватар за замовчуванням

02.12.2012 20:12-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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