Смекни!
smekni.com

Разработка программы на языке ассемблер Компиляция откладка программы (стр. 3 из 3)

Для удобства работы с компилятором можно создать командный файл, который содержит в себе вызов компилятор и компоновщика с соответствующими опциями. Это можно сделать следующим образом.

Создайте в текстовом редакторе (в Far Manager) текстовый файл с расширением .bat. Назовите его, например, a.bat. Наберите следующие строки (компилятор и компоновщик находятся в директории C:\ASM):

@echo off

C:\ASM\tasm /zi %1.asm, %1.obj, %1.lst

C:\ASM\tlink /v %1.obj

Во второй строчке вызывается компилятор с нужными опциями для файла с исходной программой, который будет указан в командной строке. В третьей строчке вызывается компоновщик для создания ехе-файла. Для компиляции программы в командной строке необходимо набрать a.bat Myprog (если исходная программа хранится в файле Myprog.asm)

После трансляции в текущей директории появляются файлы с расширением .lst, .map, .exe. Файл с расширением .lst содержит информацию об ошибках. Обязательно нужно просматривать файл листинга на наличие ошибок в программе, после этого необходимо исправить их и заново оттранслировать программу. Если ошибки не найдены, то можно запустить на исполнение созданный ехе-файл.

Для исправления ошибок можно воспользоваться отладчиком Turbo Debugger. В командной строке необходимо набрать C:\АSM\td Myprog.exe Можно оформить этот вызов в виде командного файла для удобства. После выполнения этой команды вызывается отладчик.

Просмотр содержимого регистров осуществляется командой Veiw\CPU. Пошаговое исполнение программы – F8. Выход из отладчика – ALT-X.

Задание 1:

Выполнение:

В командной строке прописываем следующие команды:

а. cls - очистка экрана

Рис.2 Очистка экрана

b. md C:\TMP – создания директории

Рис.3 Создание директории

c. copy C:\*.* C:\Tmp - Копирование в директорию C:\TMP файлов из корневого каталога

Рис.4 Копирование файлов

d. copy con C:\Tmp\new.txt – создания файла

ctrl+Z – для завершения

Рис.5 Создание файла

e. copy С:\Tmp\new.txt C:\Tmp\new.bat – создания копии файла .txt c расширением .bat

Рис.6 Создание копии файла с другим расширением (.bat)

f. comp С:\Tmp\new.txt C:\Tmp\new.bat сравнения файлов .txt c .bat

Рис.7 Сравнение файлов с различными расширениями

g. dir C:\tmp /p – просмотр директории постранично

Рис.8 Просмотр директории постранично

Задание 2:

Title main proga

.model SMALL

.data

mas dw 9,9,8,7,6,5,4,3,2,1,3,4,5 ; первый массив

mas1 dw 1,2,3,4,5,6,7,8,9,9 ; второй массив

me db "Index Massiva$"

.stack 100h ; размер стэка

.code

print proc ; процедура печати - начало описания

cmp ax,cx

jle rep1

mov dx,offset me ; заносим смещение сообщения в регистр дх

mov ah,09h ; функция вывода строки

int 21h; прерывание вызываем

jmp p1

rep1:

mov cx,ax ; ставим счетчик цикла в значение ax

rep2:

add bx,2 ; смещаемся на следуещее слово

loop rep2

mov dx,[bx]; выводим элемент под нужным номером

add dx,48 ; переводим число в соответствующий символ

mov ah,2 ; функция вывода символа

int 21h ; вызываем прерываение

p1:

mov ah,02h ; выводим конец строки в конце работы процедуры

mov dl,0Dh

int 21h

mov dl,0Ah

int 21h

ret

print endp

main proc

mov ax,@data

mov ds,ax

xor ax,ax

mov bx,offset mas ; смещение 1го массива

mov cx,13 ; размер 1го массива

mov ax,10

call print ; печетаем

mov bx,offset mas1 ; смещение 2го массива

mov cx,10 ; и размер его

mov ax,5

call print

mov ah,4ch ; возврат в опер. сист.

int 21h

main endp

end main

Блок-схема




.

ЗАКЛЮЧЕНИЕ

Язык Ассемблера - мощное средство программирования. Он позволяет программисту осуществлять всестороннее управление аппаратными средствами ЭВМ. Однако такое управление заставляет программиста вникать в детали, далекие от основного содержания программы. Все преимущества языка Ассемблера оборачиваются подчас пустой тратой времени на многочисленные детали.

Несмотря на то, что Ассемблер является машинно-ориентированным языком, то есть языком низкого уровня, программист может применять его для работы, как на высоком.

К преимуществам Ассемблера можно отнести:

1. Данный язык программирования позволяет создавать приложения, которые будут более эффективны, чем аналогичные приложения, написанные на языке высокого уровня, т.е. приложения будут более короткими и при этом более быстро выполнимыми.

2. Язык Ассемблера позволяет программисту выполнять действия, которые либо вообще нельзя реализовать на других языках и в частности на языках высокого уровня, либо выполнение которых займет слишком много машинного времени в случае привлечения дорогих средств языка высокого уровня.

К недостаткам языка следует отнести:

1. По мере увеличения своего размера программа на Ассемблере теряет наглядность. Это связано с тем, что в ассемблерных программах следует уделять много внимания деталям. Язык требует планирования каждого шага ЭВМ. Конечно, в случае небольших программ это позволяет сделать их оптимальными с точки зрения эффективности использования аппаратных средств. В случае же больших программ бесконечное число деталей может помешать добиться оптимальности программы в целом, несмотря на то, что отдельные фрагменты программы будут написаны очень хорошо.

2. Для программирования на данном языке необходимо очень хорошо знать структуру компьютера и работу аппаратных устройств, так как Ассемблер работает непосредственно с устройствами.

Можно сделать вывод, что на языке Ассемблера можно сделать любое приложение, любую программу, но для написания больших программ лучше использовать языки высокого уровня.

Список использованной литературы:

1. Методическое пособие «Основы системного программирования»

2. Электронный учебник по Ассемблеру

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

4. Скэнлон Л. Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера –М.: Радио и связь, 1991.

5. Зубков С.В. Ассемблер. Язык неограниченных возможностей