Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lb_1_ok.doc
Скачиваний:
6
Добавлен:
17.09.2019
Размер:
129.02 Кб
Скачать

11

Лабораторная работа n1

Изучение основ программирования на языке

Ассемблера

  1. Цель работы

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

2. Рекомендуемая литература

Assembler. Учебник для вузов. 2-е изд. /В. И. Юров – СПб.: Питер, 2004. с.121…141.

К. Г. Финогенов. Основы языка Ассемблера. – М.: Радио и связь, 2000. с. 22…31.

Абель П. Язык Ассемблера для IBM PC и программирования /Пер. c англ.- М.:Высш.шк., 1992.с 51…75.

Уокерли Дж. Архитектура и программирование микро-ЭВМ: В 2-х книгах. Пер. с англ.-М.: Мир, 1984.-Кн. 2. с 215…284.

Белецкий Я. Энциклопедия языка Си: Пер. c польск.-М.:Мир,1992.с 218…229, 233, 665, 669.

3. Подготовка к работе

3.1. Изучить методические указания и рекомендованную литературу.

3.2. Подготовить ответы на контрольные вопросы.

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

4.1. Команды и директивы ассемблера. Формат и отличия.

4.2. Какова цель сегментации памяти?

4.3. Что такое базовый адрес сегмента?

4.4. Какие значения может принимать базовый адрес сегмента?

Каков максимальный размер сегмента и почему?

4.5. Какие типы сегментов использует ассемблерная программа?

4.6. Какими директивами описывается сегмент?

4.7. Как описываются различные типы данных, используемые программой?

4.8. Каково назначение директивы ASSUME?

4.9. В чем заключается инициализация сегментных регистров?

4.10. Что такое ассемблирование и компоновка программы?

4.11. Стандартное начало и окончание сегмента кодов.

4.12. Каково содержание файлов с расширениями *.ASM, *.LST, *.OBJ, *.MAP, *.EXE?

4.13. Метка и имя директивы. Назначение и отличия.

4.14. Для чего требуется помечать начальную команду программы меткой?

4.15. Как завершается исходный модуль программы?

5. Задание на выполнение работы

5.1. На диске С создать папку (каталог) с именем «Ваша фамилия»1: С: \USER \Ваша фамилия. Скопировать в созданную папку файлы Турбо Ассемблера tasm.exe, tlink.exe и td.exe из папки TASM.

5.2. Используя текстовый редактор, создать и отредактировать исходный модуль программы hello_1.asm, текст которого приведен ниже.

;Program Hello_1- Ваша первая программа

Data SEGMENT

; Открыть сегмент данных

Greet DB 'Hello, My friends!', 13, 10, '$'

;Определить строку симво- ;лов с именем Greet

Data ENDS

;Закрыть сегмент данных

Ourstack SEGMENT Stack

;Открыть сегмент стека

DB 100h DUP (?)

;Отвести под стек 256 байт

Ourstack ENDS

;Закрыть сегмент стека

ASSUME CS:Code, DS:Data, SS:Ourstack

;Назначить сегментные ;регистры

Code SEGMENT

;Открыть сегмент кодов

Start: mov AX, Data

;Инициализировать

mov DS, AX

;сегментный регистр DS

mov AH, 09h

;Вывести строку Greet

mov DX, OFFSET Greet

;на экран с помощью

int 21h

;DOS

mov AL, 0

;Завершить программу

mov AH, 4Ch

;с помощью

int 21h

;DOS

Code ENDS

;Закрыть сегмент кодов

END Start

;Конец исходного модуля.

5.3. Используя компилятор Турбо Ассемблера tasm.exe создать файлы hello_1.obj и hello_1.lst. Просмотреть на экране тексты созданных файлов hello_1.obj и hello_1.lst. и проанализировать их.

5.4. Используя компоновщик tlink.exe создать файлы hello_1.exe и hello_1.map. Вывести на экран файлы hello_1.exe и hello_1.map и проанализировать их.

5.5. Убедиться в работоспособности программы hello_1.

5.5. Создайте для ускорения процесса ассемблирования и компоновки командный файл с любым именем с расширением bat (*.bat). Для этого в текстовом редакторе NC наберите текст, состоящий из последовательности выполняемых команд DOS:

tasm /z /zi /n hello_1 hello_1 hello_1

tlink /v hello_1

Удалите из текущего каталога все файлы hello_1 кроме исходного и проверьте работоспособность созданного командного файла.

5.6. Создайте универсальный командный файл *.bat, который можно использовать для ассемблирования и компоновки любой создаваемой Вами программы. Для этого в созданном командном файле вместо имени файла следует набрать символы %1:

tasm /z /zi /n %1 %1 %1

tlink /v %1

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

5.7. Внести изменения в программу hello_1, которые заставят ее выводить на экран еще одну строку текста «My name Ваша фамилия». Для этого создайте новый исходный модуль hello_2.asm, выполните ассемблирование и компоновку, после чего убедитесь в работоспособности программы.

    1. Отчитаться о проделанной работе.

5.9. Составьте отчет, который должен содержать:

  • распечатку текста исходного модуля и всех файлов, созданных в процессе ассемблирования и компоновки для программ hello_1 и hello_2 с комментариями: *.asm, *.obj, *.lst, *.map, *.exe;

  • список команд, использующихся для ассемблирования и компоновки;

  • тексты созданных командных файлов *.bat с комментариями;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]