Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Проста програма на Асемблері




Для знайомства з мовою Асемблера розглянемо один з варіантів програми, що здійснює вивід на екран фрази "Hellow World!!"!.


1DOSSEG

2. model small; модель пам'яті

3. STACK 100h;визначення сегменту стека

4. DATA; оголошення сегменту даних

5 Message DB ' 'Hellow World!!! ',13,10,'$'

6.CODE; оголошення сегменту коду

7 start:; точка входу в програму

8 mov ax,@Data

9 mov ds,ax; налаштування DS на сегмент даних

10 mov ah,9; функція переривання 21h DOS виводу рядка

11 mov dx,OFFSET Message; посилання на рядок "Hellow World!!! "

12 int 21h; вивести "Hellow World!!! " на екран

13 mov ah,4ch; функція переривання DOS завершення програми

14 int 21h; виклик переривання

15 END start; завершення виконання коду

16 END


Рядок 2 містить оголошення вибраної моделі пам'яті.

Рядок 3 описує сегмент стеку програми - область пам'яті, що спеціально виділяється для тимчасового зберігання даних програми. Під стек зарезервовано 256 байт (100h).

Рядки 4-5 оголошують сегмент даних. У рядку 5 описана рядкова змінна Мessage ''Hellow World!!!', допоміжний символ '$' використовується для сигналу про закінчення виведення повідомлення на екран.
Рядки 6-16 містять сегмент коду. Мітка start позначає першу команду програми.
Рядки 9-10 виконують ініціалізацію сегментного регістра DS.
У рядку 11 в регістр DX завантажується адреса повідомлення message 'Hellow World!!!'.

У рядку 10 в регістр ah заноситься число 9h - номер функції MS DOS Виведення рядка, а потім викликається переривання MS - DOS int 21h, яке запус-кає цю функцію.

Рядки 13-14 - звернення до засобів операційної системи для стандартного виходу з програми – виконання функції 4ch переривання 21h DOS.

Рядок 16 містить директиву END

 

4.2 Етапи розробки програми

В процесі формування програми на мові асемблера виділено 4 етапи:
- введення початкового коду програми текстовим редактором,
- трансляція програми,
- створення завантажувального модуля,
- відладка програми.

4.3.1 Для перетворення коду асемблера на код виконуваний процесором необхідно використовувати службові програми пакетів Асемблера. У даній лабораторній роботі це пакет Turbo Assembler TASM фірми Borland.

4.3.2 Для підготовки коду програми на Асемблере можна використати будь-який текстовий редактор, наприклад, Блокнот, Microsoft Word, вбудовані редактори оболонок FAR, Norton Commander та ін. Файл з початковою програмою повинен мати розширення.asm. Нехай для ім'я розглянутої вище за програму буде progr1.asm.

4.3.3 На етапі трансляції за допомогою програми tasm.exe формирует-ся об'єктний модуль, який включає представлення початкової програми в машинних кодах і деяку іншу інформацію, необхідну для відладки і компонування його з іншими модулями. Формат команди:

TASM [< опції >] < ім'я початкового файлу > [,< ім'я об'єктного файлу >] [,< ім'я файлу лістингу >] [,< ім'я файлу перехресних посилань >],

де:

текст розміщений в квадратні дужки не обов'язковий
< опції > - режим роботи транслятора TASM, як правило опція має формат /< 1-2 букви >; наприклад опція /zi - включає в об'єктний файл інформацію для відладки;
< ім'я початкового файлу > - обов'язковий параметр;
< ім'я об'єктного файлу >, < ім'я файлу лістингу >, < ім'я файлу перехрещення-
ни х посилань > - необов'язкові параметри, якщо не задано два останні імена, то відповідні файли не будуть створені.

Для отримання довідки про формат командного рядка і можливих значеннях параметрів треба запустити tasm.exe без вказівки аргументів.
Файл лістингу містить інформацію про програму у вигляді рядків формату:
< глибина вкладеності > < номер рядка > < зміщення > < машинний код > < початковий код >
де:
< глибина вкладеності > - рівень вкладеності файлів, що включаються, або мак-рокоманд в початковому файлі;
< номер рядка > - номер рядка у файлі лістингу (а не в програмі!);
< зміщення > - зміщення в байтах поточної команди відносно початку сег-мента коду;
< машинний код > - машинне представлення команди Асемблера, яка записана в полі < початковий код >;
< початковий код > - рядок коду початкової програми.
У кінці лістингу формуються таблиці про використовувані мітки, імен і сегментах в програмі. За наявності помилок транслятор включає в рядок і в кінець лістингу відповідні повідомлення.

 

4.3.4. Якщо, окрім об'єктного файлу, потрібні файли лістингу і перехресних посилань і їх імена при цьому повинні співпадати з ім'ям початкового файлу (найбільш типовий випадок), то треба поставити коми замість вказівки імен файлів:
tasm.exe /zi progr,,,
В результаті будуть створені файли: progr .obj, progr.lst, progr.xrf.
Якщо імена об'єктного файлу, файлу лістингу і файлу перехресних посилань не повинні співпадати з ім'ям початкового файлу, то треба у відповідному порядку в командному рядку вказати імена цих файлів.
4.3.4 В результаті роботи програми tasm на екрані з'явиться приблизно наступне:
Turbo Assembler Version 4.1 Copyright (c) 1988, 1996 Borland International
Assembling file: progr.asm
Error messages: None
Warning messages: None
Passes: 1
Remaining memory: 373k
Якщо програма містить помилки, то транслятор видасть на екран рядки повідомлень, які починаються словами "Error" (помилка) і "Warning" (попередження)

 

4.3.5 Результатом роботи компонувальника є створення завантажувального (виконуваного) файлу з розширенням.ехе або.com. Далі розглянемо процес формування exe-файлів.
Формат командного рядка для запуску компонувальника:
TLINK [< опції >] <список об'єктних файлів > [,< ім'я завантажувального мо-дуля >]
[,< ім'я файлу карти>] [,< ім'я файлу бібліотеки >],
де:
< опції > - необов'язкові параметри, що управляють роботою компонувальника, одна з найбільш вживаних опцій: /v - включити налагоджувальну інформацію у виконуваний файл;
< список об'єктних файлів > - обов'язковий параметр, файли мають бути розділені пропусками або знаком плюс;
< ім'я завантажувального модуля > - якщо не вказано, то ім'я завантажувального модуля буде співпадати з ім'ям першого об'єктного файлу із списку;
< ім'я файлу карти > - наявність цього параметра зобов'язує компонувальник створити файл, в якому для компонування учбової програми слід запустити програму tlink.exe командним рядком виду:
tlink.exe /v progr1.obj
При успішному компонуванні на екрані з'являється повідомлення:
Turbo Link Version 7.1.30.1. Copyright (c) 1987, 1996 Borland International
Для запуску програми на виконання треба набрати в командному рядку ім'я виконуваного модуля (у нашому випадку: progr.exe) і натиснути. Програма виведе на екран повідомлення:
Hellow World!!!
4.3.6 Не завжди створення виконуваного модуля гарантує правильність роботи програми. Тому практично обов'язковим етапом розробки програми стає відладка.
Деякі можливості відладчика Turbo Debugger (TD):
- виконання трасування програми, тобто виконання програми по кроках;
- перегляд і зміна стану апаратних ресурсів микропроцес-сора під час покомандного виконання програми.
TD не дає можливості виправляти початковий текст програми. Після визначення причини помилкової ситуації можна, при необхідності, не завершуючи роботу відладчика, внести виправлення прямо в машинний код і запустити програму на виконання. Проте, після завершення роботи відладчика ці зміни не будуть збережені, і треба внести їх повторно, але вже в вихідний текст і наново створити завантажувальний модуль.
Запуск відладчика роблять з командного рядка:
td < ім'я виконуваного модуля >
У вікні перегляду модуля Module, що відкрилося, знаходиться початковий текст програми. Курсор виконання (у вигляді трикутника) вказує на першу команду, що підлягає виконанню. Цій команді передує ім'я мітки. Це так звана точка входу в програму.

4.3.7Завдання для практичної роботи
1. У текстовому редакторові набрати текст програми, зберегти її під ім'ям progr.asm.
2. Виконати трансляцію файлу progr.asm з отриманням об'єктного файлу, файлу лістингу і файлу перехресних посилань
3. Проглянути файл лістингу.
4. Виконати компонування учбової програми і запустити воно на ви пол-нение.
5. Запустити відладчик для роботи з програмою progr.exe.
6. Вивчити можливості усіх вікон відладчика.
7. Запустити програму на виконання у відладчику в кожному з чотирьох режимів.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных