Міністерство освіти і науки України
Національний університет “Львівська Політехніка”
Кафедра ЕОМ
ЗВІТ
з лабораторної роботи №1
з дисципліни: “Засоби системного програмування”
на тему: “Процес створення
Львів 2016
Мета роботи: Освоїти послідовність дій для компіляції програм, написаних на мові Assembler за допомогою системи Turbo Assembler та здобути навики їх від лагодження засобами середовища Turbo Debug
Завдання:
За допомогою текстового редактора створити файл <прізвище>.asm , який містить текст програми. (Параметр <прізвище> повинен містити Ваше прізвище в англійській транслітерації і мати довжину до 8 символів).
В тексті програми змінити повідомлення, що міститься за міткою HelloMessage так, щоб воно відображало Ваше прізвище. Зберегти внесені зміни.
Створити <прізвище>.exe-файл засобами система Turbo-Assembler. (тобто в командному рядку виконати:tasm <прізвище>.asm /la <Enter>; tlіnk <прізвище>.obj <Enter> )
Виконати створену програму і переконатися, що вона працює коректно, тобто виводить Ваше прізвище на екран.
Запустити систему відлагодження Turbo Debug та ознайомитися з її інтерфейсом та можливостями (td.exe).
Покроково виконати в системі Turbo Debug створений вище .exe – файл, задокументувавши зміни регістрів процесора та вміст сегменту даних.
Скласти звіт про виконану роботу, який повинен містити короткий опис можливостей Turbo Debug та лістинг Вашої програми, тобто вміст файлу <прізвище>.lst
Короткі теоретичні відомості:
Turbo Debug - відладчик фірми Borland, достатньо потужний засіб налагодження програм. Цей відладчик розроблявся ще для DOS-програмування і орієнтований в основному на мови фірми Borland. Суттєвим є те, що відладчик дозволяє відлагоджувати програму як на рівні дизасемблювання команд мікропроцесора, так і на рівні початкового тексту програми. В останньому випадку потрібно, щоб при трансляції в виконуваний модуль була поміщена відлагоджуюча інформація.
Відладчик Turbo Debugger може допомогти вирішити два найважчих завдання відлагодження:
Визначення місцезнаходження помилки
Виявлення причини помилки.
Turbo Debugger допомагає подолати ці складнощі завдяки широким можливостям призупиняти виконання програми та перевіряти її стан в будь-якій точці. Можна навіть задавати нові значення змінним і перевіряти їх вплив на виконання програми. Ця можливість реалізується такими функціями відладчика як трасування, покрокове виконання, перегляд, перевірка, заміна і стеження.
Хід роботи:
За допомогою програми Notepad++, яка виконує функції текстового редактора, створюю файл pidgrus.asm, який буде містити код програми.
Зберігаю в цьому файлі наступний код:
.MODEL SMALL
.STACK 100h
.DATA
HelloMessage db 'Karpyn Roman', 13, 10, '$'
.CODE
Start: push ds
xor ax,ax
push ax
mov ax,@data
mov ds,ax
mov ah,9
mov dx,OFFSET HelloMessage
int 21h
mov ah,4ch
int 21h
end Start
END
Створюю KARPYN.exe-файл засобами системи Turbo-Assembler (тобто в командному рядку виконую асемблерування та лінкування)
/
Рис. 1. Результат виконання програми,виведення прізвища на екран
Для запуску дебагера виконую в командному рядку td.exe
Клавішею F8 покроково виконую в системі Turbo Debug створений вище .exe – файл
Рис. 2. Покрокове виконання програми
(В лівій частині вікна можна побачити команди, які виконуються та їх параметри. В правій частині вікна показано вміст регістрів та стани прапорців)
Вмістиме файлу KARPYN.lst :
Turbo Assembler Version 3.0 02/19/16 22:23:17 Page 1
Karpyn.asm
1 0000 .MODEL SMALL
2 0000 .STACK 100h
3 0000 .DATA
4 0000 4B 61 72 70 79 6E 20+ HelloMessage db 'Karpyn Roman', 13, 10, '$'
5 52 6F 6D 61 6E 0D 0A+
6 24
7 000F .CODE
8 0000 1E Start: push ds
9 0001 33 C0 xor ax,ax
10 0003 50 push ax
11 0004 B8 0000s mov ax,@data
12 0007 8E D8 mov ds,ax
13 0009 B4 09 mov ah,9
14 000B BA 0000r mov dx,OFFSET HelloMessage
15 000E CD 21 int 21h
16 0010 B4 4C mov ah,4ch
17 0012 CD 21 int 21h
18 end Start
Turbo Assembler Version 3.0 02/19/16 22:23:17 Page 2
Symbol Table
Symbol Name Type Value
??DATE Text "02/19/16"
??FILENAME Text "Karpyn "
??TIME Text "22:23:17"
??VERSION Number 0300
@32BIT Text 0
@CODE Text _TEXT
@CODESIZE Text 0
@CPU Text 0101H
@CURSEG Text _TEXT
@DATA Text DGROUP
@DATASIZE Text 0
@FILENAME Text KARPYN
@INTERFACE Text 00H
@MODEL Text 2
@STACK Text DGROUP
@WORDSIZE Text 2
HELLOMESSAGE Byte DGROUP:0000
START Near _TEXT:0000
Groups & Segments Bit Size Align Combine Class
DGROUP Group
STACK 16 0100 Para Stack STACK
_DATA 16 000F Word Public DATA
_TEXT 16 0014 Word Public CODE
Висновок: Виконуючи дану лабораторну роботу, я освоїв послідовність дій для компіляції програм, написаних на мові Assembler за допомогою системи Turbo Assembler та здобув навики їх відлагодження засобами середовища Turbo Debug