Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабораторная работа 1. Выполнение простых задач
Цель работы: изучить процессы ассемблирования, компоновки и выполнения программы, а также научиться решать, тестировать и отлаживать на ЭВМ простейшие типовые задачи как вычислительного, так и не вычислительного характера. Как правило, в самой постановке такой задачи уже определен алгоритм ее решения. Необходимо записать этот алгоритм, используя основные конструкции языка ассемблера. Для проверки правильности работы программы должны быть представлены необходимые тестовые данные.
Задания.
Написать программу.
1. Вывод сообщения на экран с начала строки.
2. Вывод сообщения на экран с середины экрана.
3. Вывод сообщения на экран с начала строки и в рамке, построенной из любых символов псевдографики.
4. Вывод сообщения в рамке на середину экрана.
5. Вывод на экран символа с помощью функции 2h, для этого запишите в сегменте кодов:
mov |
ah, 2h |
; функция вывода символа на экран |
|
mov |
dl, A |
;ASCII |
|
int |
21h |
;прерывание DOS |
6. Вывод сообщения на экран. Перед выдачей сообщения очистить экран функцией 6 int 10h:
mov |
ah, 6h |
; функция очистки экрана |
|
mov |
al, 0 |
; 0 - весь экран |
|
mov |
ch, 0 |
; номер строки левого верхнего угла |
|
mov |
cl, 0 |
; номер столбца левого верхнего угла |
|
mov |
dh, 24 |
; номер строки правого нижнего угла |
|
mov |
dl, 79 |
; номер столбца правого нижнего угла |
|
mov |
bh, 30h |
; байт атрибут (на бирюзовом фоне черные символы) |
|
int |
10h |
; прерывание BIOS |
Вставить эти 8 команд после 9-й строки.
7. Вывод сообщения на экран. Перед выдачей сообщения установить курсор функцией 2 int 10h:
mov |
ah, 2h |
; функция установки курсора |
|
mov |
bh, 0 |
; текущая видеостраница |
|
mov |
dh, 5 |
; номер строки 5 |
|
mov |
dl, 10 |
; номер столбца -10 |
|
int |
10h |
; прерывание BIOS |
Вставить эти команды перед выдачей символа или сообщения.
8. Вывод сообщения на экран. Перед выдачей сообщения нарисовать цветное окно функцией 6 int 10h и установить курсор функцией 2 int 10h.
Методические рекомендации по выполнению лабораторной работы
При составлении программы на языке ассемблера можно выделить следующие этапы:
1) составление блок схемы;
2) создание исходной программы NAME.ASM, где NAME любое допустимое в С имя DOS файла;
3) создание объектной программы NAME.OBJ;
4) создание исполняемой программы NAME.EXE;
5) выполнение EXE программы;
6) проверка результатов.
Если результаты не соответствуют требованиям задачи, надо найти ошибки, т.е. отладить программу.
Исходный текст программы создается в любом редакторе текстов. Редактор текста представляет собой программу, которая обеспечивает ввод и корректировку исходных текстов программ в кодах ASCII.
Транслятор (компилятор) формирует дисковый файл, содержащий объектный модуль NAME.OBJ (текст программы на машинном языке, но без реализации связей между подпрограммами).
Компоновщик (загрузчик) осуществляет компоновку результирующих модулей с предполагаемыми библиотечными модулями и завершает определение адресных ссылок, т.е. создает перемещаемый исполняемый модуль NAME.EXE. Представленный здесь Турбо Ассемблер, включающий встроенные компилятор, компоновщик и отладчик, разработан фирмой Borland International для семейства микрокомпьютеров IBM PC. Он совместим с ассемблером MASM фирмы Microsoft Corporation, но кроме того содержит много полезных расширений и улучшений и обладает более высоким быстродействием.
Компилятор Турбо Ассемблера это выполняемая программа, размещенная в файле TASM. EXE. Компилятор вызывается командой
Tasm Name.asm ,
в которой Name.asm является именем компилируемого файла, и создает перемещаемый объектный файл Name.obj.
Вызов компилятора в общем случае имеет вид:
TASM fileset; fileset; …; fileset
где fileset представляет собой конструкцию вида
options, sources, object, list, xref
причем options представляет собой название опции, sources имя исходного файла или последовательность таких имен, разделенных символом + (плюс) либо пробелом, object имя результирующего файла(.OBJ), list - имя файла, куда будет помещен листинг компиляции, а xref имя файла, куда будет помещена таблица перекрестных ссылок. Таблица перекрестных ссылок содержит перечень символических имен модуля, мест, в которых они определены, а также номера строк, в которых появились ссылки на них.
Например, команда
TASM /l prim1+prim2, prim; /zi test
приведет к созданию из исходных модулей prim1.asm и prim2.asm результирующего модуля prim.obj , а также листинга компиляции, который будет помещен в файле prim.lst (опция /l) и, кроме того, созданию из исходного модуля test.asm с использованием опции /zi результирующего модуля test.obj.
С целью создания исполнительной программы необходимо провести компоновку результирующих модулей .obj с предполагаемыми библиотечными модулями. Эту задачу выполняет компоновщик Turbo Link фирмы Borland Int.
Компоновщик является выполняемой программой, хранящейся в файле TLINK.EXE.
Вызов компоновщика TLINK в общем случае имеет вид
TLINK options, objects, exec, map, libraries
где options набор опций, objects множество имен файлов, содержащих результирующие модули, exec имя файла, в который будет помещена выполняемая программа, map имя файла, в который будет помещена карта компоновки, libraries множество имен файлов, содержащих библиотеки результирующих модулей. Опции отделяются пробелами, имена файлов должны быть отделены пробелами или знаками + (плюс).
Порядок выполнения работы.
1. Введите в компьютер исходный ассемблерный текст программы с помощью любого текстового редактора. При использовании встроенного редактора NC:
F4 редактирование выделенного курсором файла;
SHIFT+F4 создание нового файла, не имеющегося на диске, нужно ввести имя файла;
ALT+F4 внешний редактор.
Введите данную программу:
(Номера строк и угловые скобки не набирать!)
Data |
segment |
<1 > |
|
string |
db db |
Ваши фамилия и имя :……. ,13,10 Ваш возраст : …..,$ |
< 2> <3 > |
data |
ends |
< 4> |
|
code |
segment |
< 5> |
|
assume |
cs:code, ds:data |
< 6> |
|
start: |
< 7> |
||
mov |
ax, data |
< 8> |
|
mov |
ds, ax |
< 9> |
|
mov |
dx, offset string |
< 10> |
|
mov |
ah,9h |
< 11> |
|
int |
21h |
< 12> |
|
mov |
al,0 |
< 13> |
|
mov |
ah,4ch |
< 14> |
|
int |
21h |
< 15> |
|
code |
ends |
< 16> |
|
end |
start |
< 17> |
2. После выхода из редактирования убедитесь в наличии вашей программы в текущем каталоге Name.ASM. Для получения .OBJ модуля, необходимо в командную строку набрать имя транслятора и имя вашего файла TASM.EXE NAME.ASM.
Быстрый способ :
выделите на панели файл TASM.EXE, нажмите CTRL+ENTER
выделите на панели файл NAME.ASM , нажмите CTRL+ENTER
Проверьте информацию в командной строке. Для выполнения трансляции нажмите ENTER.
Если Ассемблер выдаст сообщения об ошибках, то нужно исправить исходную программу с помощью редактора и заново ее оттранслировать.
3. Для получения выполняемой программы, необходимо в командную строку набрать имя компоновщика TLINK.EXE и имя вашего объектного файла NAME.OBJ - TLINK.EXE NAME.OBJ нажмите ENTER.
В текущем каталоге появится файл NAME.EXE и файл, содержащий таблицу имен и размеров сегментов NAME.MAP.
4. Выделите курсором исполняемый файл и нажмите ENTER. Такое исполнение программы возможно при явных результатах или при полной уверенности в ее безошибочной работе.
Основная литература 3[12-18]
Контрольные вопросы: