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

Форум программистов: C++, Basic, Delphi, Pascal, JavaScript
Логин: Пароль:
Запомнить?  
@Mail.ru



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Ваша вторая программа на Турбо Ассемблере 
Автор Сообщение
Начинающий

Регистрация: 24.02.2008
Сообщения: 12

Репутация: 0 [ ? ]
Сообщение Ваша вторая программа на Турбо Ассемблере
Ваша вторая программа на Турбо Ассемблере

Теперь вы готовы к тому, чтобы ввести и запустить программу, которая действительно что-то делает. Вернитесь в текстовый редактор и введите следующую программу REVERSE.ASM:


.MODEL SMALL
.STACK 100h
.DATA
MAXIMUM_STRING_LENGTH EQU 1000
StringToReverse DB MAXIMUM_STRING_LENGTH DUP (?)
ReverseString DB MAXIMUM_STRING_LENGTH DUP (?)mov ax,@Data
mov dx,ax
mov ah,3fh
mov bx,0
mov cx,MAXIMUM_STRING_LENGTH
mov dx,OFFSET StringToReverse
int 21h
and ax,ax
jz Done
mov cx,ax

push cx
mov bx,OFFSET StringToReverse
mov si,OFFSET ReverseString
add si,cx
dec si
ReverseLoop:
mov al,[bx]
mov [si],al
inc bx
dec si
loop ReverseLoop
pop cx
mov ax,40h
mov bx,1
mov dx,OFFSET ReverceString
Done:
mov ah,4ch
int 21h
END
установить регистр DS таким образом, чтобы он указывал на сегмент данных
функция DOS чтения ввода
описатель стандартного ввода
считать до максимального числа символов
сохранить строку
получить строку
были считаны символы?
нет, конец
поместить длину строки в регистр СХ, который можно использовать, как счетчик
сохранить в стеке длину строки



указывает на конец буфера строки

получить следующий символ
сохранить символы в обратном порядке
указатель на следующий символ
указатель на предыдущую ячейку buffer
переместить следующий символ, если он имеется
извлечь длину строки
функция записи DOS
описатель стандартного вывода
напечатать строку

функция DOS завершения программы
завершить программу




Скоро вы увидите, что сможет делать эта программа. Для начала не забудьте ее сохранить (под именем REVERSE.ASM).


Запуск программы REVERSE.ASM


Для запуска программы REVERSE.ASM вы должны сначала ассемблировать ее:


TASM reverse


а затем ввести:


TLINK reverse


для создания выполняемого файла. Запустите программу, введя в ответ на подсказку DOS слово reverse. В случае вывода при ассемблировании сообщений об ошибках, внимательно проверьте исходный код, сравните его с приведенным текстом, а затем попытайтесь повторить процесс.


После запуска программы на экране останется мерцающий курсор. Очевидно, программа ожидает, что вы что-нибудь введете. Попробуйте ввести:


ABCDEFG


а затем нажмите клавишу ENTER. Программа выведет на экран:


GFEDCBA


и завершит работу.


Теперь ясно, что делает программа REVERSE.ASM: она изменяет порядок символов во введенной строке на обратный. Быстрая работа со строками и символами - эта одна из областей, где язык Ассемблера превосходно демонстрирует свои качества. Вы увидите это в следующих нескольких главах.


Вас можно поздравить! Вы только что ввели, ассемблировали и скомпоновали несколько программ на Ассемблере и, таким образом, ознакомились в действии с основами программирования на Ассемблере: вводом, обработкой данных и выводом.


Если вы не хотите создавать объектный файл, но хотите получить файл листинга, или если вы хотите получить файл перекрестных ссылок, но не хотите создавать файл листинга или объектный файл, задайте в качестве имени файла пустое (нулевое) устройство (NULL). Например, команда:


TASM FILE1,,NUL,


ассемблирует файл FILE1.ASM в объектный файл FILE1.OBJ, не создавая файла листинга, и создает файл перекрестных ссылок FILE1.XRF.


Литература по языку Ассемблера


Многие ведущие издательства издают по продуктам фирмы Borland превосходные книги, предназначенные для любого круга читателей - от начинающих пользователей до тех, кто имеет достаточный опыт работы. Приведем несколько названий книг, в которых можно найти дополнительную информацию о Турбо Ассемблере, Турбо отладчике и Турбо Профайлере:


Ackerman, Charles. Turbo Debugger and Tools: A Self-Teaching Guide, John Wiley and Sons (New York: 1990).
Swan, Tom. Mastering Turbo Assembler. Indianapolis: Hayden Books, 1989.
Swan, Tom. Mastering Turbo Debugger and Tools. Howard W. Sams and Co. (Carnel, IN: 1990).
Syck, Gary. The Waite Group"s Turbo Assembler Bible, Howard W. Sams and Co. (Carmel, IN: 1990).


24.02.2008 17:28
Профиль
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


Кто сейчас на конференции

Зарегистрированные пользователи: Yahoo [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
© 2013 «Форум программистов Украины»