Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Трансляция программы. Компоновка программы. Отладка программы. Утилита MAKE



Цель работы:

- ознакомление с общими принципами построения программ на языке

ассемблера;

- работа с программами TASM.EXE, TLINK.EXE;

- создание командных и исполняемых файлов (*.ЕХЕ,*.СОМ)

1.Полный цикл создания программы на языке Ассемблера состоит из следующих этапов:

Создание новой программы

…………………………………

Редактирование

текстовый редактор.

…………………………………

Исходный файл Ассемблера (*.asm)

…………………………………..

Ассемблирование (трансляция TASM.EXE)

…………………………………..

Объектный файл *.obj

………………………………

Компоновка (TLINK.EXE)

исполняемый файл *.ехе

……………………..

Выполнение

………………………………

………Если нужны изменения

…………………………………..

Конец

1.2 В языке Ассемблера имеются операторы 2-х видов: директивы и командные операторы

1.2.1 Директивы служат указаниями Ассемблеру во время ассемблирования, но не транслируются в машинные команды.

Любая программа содержит упрощенные директивы определения сегментов DOSSEG,.MODEL,.STACK,.DATA,.CODE и END. Директивы определения данных позволяют определить переменные в памяти различного размера:

DB - 1 байт

DW - 2 байта = 1 слово

DD - 4 байта = 1 двойное слово

DQ - 8 байт = 1 четвертное слово

DT-10 байт

1.3 Команды (мнемоники инструкций), транслируются (преобразуются) в машинные коды, например, MOV - переслать.,

INC - увеличить содержимое на 1.

В Ассемблере нет команды непосредственной загрузки сегментного регистра, поэтому формирование адреса сегмента данных производится следующим образом: mov ax,@data;переслать в ах адрес сегмента данных то\ ds,ax переслать в ds содержимое ах

1.4 Изучить файлы Tasmrus.ixt и Tlinkgis.txt (помощь к программам TASM,TLINK и ключи управления), необходимые ключи законспектировать.

1.5 Работаем в NORTON COMMANDER

2. ЗАДАНИЕ 1 (Упрошенное оформление программ)

2. 1 Войдите в директорию L1,в ней создайте файл с именем HELLO1.ASM. (SHIFT-F4). Введите текст следующей программы (без комментариев). F2-сохранить файл.

Программа 1:

.Programm Hello 1 (Упрощенное оформление программ)

.model small;Модель памяти ближнего типа

.stack 1 ООh;Определяет стек размером l OOh.data;Начало сегмента данных

Hello DB 'Hello S';Зарезервировали.память для

:переменной HELLO

.code;Начало сегмента кода

start: mov ах. @DATA; Формирование адреса сегмента

mov ds.ax; данных

LEA DX.Hello; Остановить в DX адрес переменюй HELLO

МOV ah.09h; Функция DOS вывода строки

INТ 21 h; Вывод строки на экран

MOY ax.4COOh;Функция DOS завершения

INT21h; программы

END start; конец программы

2.2 Создайте исполняемый файл HELLO1.EXE, выполнив ассемблирование и компоновку файла HELLO I. ASM. (Ввод команды завершить клавишей Enter).

2.2.1 Для ассемблирования наберите TASM HELLO I.ASM HELLO 1. ASM будет ассемблироваться в HELLO 1.OBJ

2.2.2 Для компоновки наберите TLINK HELLO 1.OBJ В результате работы получаем файл

HELLO 1.EXE

2.2.3 Для выполнения программы встаньте курсором

на файл HELLO I.EXE и нажмите Enter или наберите HELLO 1

Погасите левую панель клавишами Ctrl-Fl, чтобы было видно как работает пpoгpaммa HELLOl.EXE.

2.2.4 Внесите изменения в вашу программу, для чего создайте файл HELLO1'1.ASM, в него скопируйте файл HELLO 1. ASM, вместо слова 'HELLO!$' наберите любое' другое слово в кавычках '....' Создайте файл HELLO11.ЕХЕ, используя командный файл.

2.2.5 Создание командного файла. Для ускорения процесса создания исполняемого файла (п.п.2-2.2.) создайте командный файл с любым именем (в текстовом редакторе), расширением.ВАТ, например. HEL.BAT

HELLO11.EXE

2.2.6 Для запуска командного файла встаньте курсором на файл HEL.BAT.и нажмите клавишу Enter.

2.2.7 Создайте командный файл HEL1.ВАТ для любой программы,

в этом случае в командном файле вместо имени файла (вашей программы) набирают символы %]

TASM/L%ol

TLINK% 1

%1.ЕХЕ

2.2.8 Для запуска данного командного файла нужно после имени командного файла (без расширения) указать имя вашей программы без расширения (.ASM), например,

HEL1 HELLO11

3.1 Войдите в директорию Е1,в ней создайте файл с именем HELLO2.ASM. Введите текст следующей программы (без комментариев).

F2-сохранить файл.

Программа 2

; Program Hello2 (Стандартное оформление программ)

OurSiack SEGMENT PARA STACK 'STACK'

DB64DUP(?)

OurStack ENDS

OurData SEGMENT PARA PUBLIC 'DATA'

Hello DB'Hello!S'

OurData ENDS

OurCode SEGMENT PARA PUBLIC 'CODE'

ASSUME CS:OurCode. DS:OurData. SS:OurStack Start: MOV AX,OurData

MOVDS.AX

LEA DX.Hello

MOV AH.09h

INT21H

MOV AH,4Ch

MOVAL,Ooh

INT21h

OurCode ENDS

END Start

3.2 Создайте исполняемый файл HELLO2.EXE., выполнив ассемблирование и компоновку файла НЕLLО2.АSМ, используя раннее созданный пакетный файл HEL1.ВАТ (п.2.2.7) клавишей Enter).

3.2.1 Для выполнения программы наведите курсор на файл HELLO2.EXE и нажмите Enter или наберите HELLO2

Погасите левую панель клавишами Ctrl+Fl, чтобы было видно как работает программа HELLO2.EXE.

4. ЗАДАНИЕ 3 (Пример оформления программы в виде *.СОМ файла)

4.1 Войдите в директорию L1,в ней создайте файл с именем HELLO3.ASM..Введите текст следующей программы (без комментариев).

F2-сохранить файл.

Программа 3:

: Programm Hello3 (Пример оформления программы в виде corn-файла)

MODEL SMALL

.CODE

org lOOh

begin: jmp start

Hello DB'Hello!$'

start: LEA DX.Hello

MOV AH.09h

INT21h

MOV AH.4CH

MOV AL.Ooh

INT21h

END begin

4.2 Создайте исполняемый *.com файл HELLO3.COM, выполнив ассемблирование и компоновку файла HELLO3.ASM. (Ввод команды завершить клавишей Enter).

4.2.1 Для ассемблирования наберите TASM HELLO3.ASM HELLO1.ASM будет ассемблироваться в HELLO 1.OBJ

4.2.2 Для компоновки наберите TLINK/t HELL03.OBJ

В результате работы получаем файл HELLO3.COM

4.2.3 Для выполнения программы встаньте курсором на файл HELLO3 СОМ и нажмите Enter или наберитеHELLO3 Погасите левую панель клавишами Ctrl-Fl. чтобы было видно как работает программа HELLO3.СОМ.

5. Задние 4 Получение файлов-листинга (отладочные файлы).

5.1 Снова создайте файл HELLO 1 OBJ. используя исходную программу, раннее набранную HELLO 1.ASM. получите файл листинга HELLO1 LSI (см.TASMRUS.HLP)

Просмотрите файл HELLO1.LST - листинг программы HELLO1.OBJ, который содержит адреса, машинные коды команд и операторы Ассемблера

6. К отчету по СРС №1 представить:

- продемонстрируйте работающие программы HELLO1, HELLO 11,HELL02, HELLO3;

- полный цикл создания программы на языке Ассемблера;

- программы HELLO 1. ASM, HELLO2.ASM, HELLO3.ASM с комментариями;

- блок-схемы программ HELLO 1,HELLO2,HELLO3;

-выберите из файла HELLO 1.LST по одной команде с различными режимами адресации: регистровой, регистровой косвенной, базовой, непосредственной. Запишите команды Ассемблера машинный код команд в 16-м и двоичном коде, режимы адресации команд.

- заполненную таблицу

Имя Количество: Размер:Размер: Размер

программы:команд:*.OBJ (в кбт.):*.ЕХЕ:*.COM

HELL01

HELLO11

HELLO2

HELLO3

Примечание 1:

В данной СРС используются следующие функции DOS для выполнения некоторых операций:

1) Функция 1 "Ввод с клавиатуры" вызывается путем помещения номера функции в регистр АН и выполнения команды INT 21Н – прерывание программы. Набранный символ помещается в регистр AL.

MOV AH,1

INT21H

2) Функция 9 - "Печать строки" вызывается путем помещения номера функции в регистр АН, адреса (смещения) строки в регистр DX и

выполнения команды INТ 21Н.

MOVAH.9

MOV DX.offset HELLO

INT21H

3) Функция 4СН - "Завершение программы и выход в DOS." вызывается аналогично функции 1.

MOV AH.4CH

INT21H

Контрольные вопросы:

1 - Перечислите регистры общего назначения процессора 8086.

Назначение этих регистров и особенности их использования.

2. Раскройте механизм сегментации памяти процессора 8086.

3 Перечислите сегментные регистры процессора 8086, особенности их использования.

4. Как называется процесс перевода программы записанной в мнемокоде в коды ЦП.

5. Как называется процесс перевода *.obj файла в *.ЕХЕ файл.

6 Назовите виды адресации операторов в программах на языке Ассемблера.

7. Назовите виды оформления программ на языке Ассемблера, их отличия.

8. Назовите модели памяти применяемые при построении программ на языке Ассемблера. Перечислите их основные характеристики.

9. Объясните назначение каждого из перечисленных файлов, получаемых при создании исполняемой программы на языке ассемблер. *.ASM,*LST,*.CRF,*.map,*.EXE,*.com.

10.Какая ошибка содержится в операторах const db.?

СРС N3





Дата публикования: 2015-10-09; Прочитано: 1717 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.012 с)...