Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Турбо Ассемблер / Использование Турбо Ассемблера /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Начало работы на Турбо Ассемблере - Программирование от RIN.RU
Начало работы на Турбо Ассемблере



Ваша вторая программа на Турбо Ассемблере


Теперь вы готовы к тому, чтобы ввести и запустить программу, которая действительно что-то делает. Вернитесь в текстовый редактор и введите следующую программу 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).


<<<  Назад
 1  2  3  4  5  6  7  8 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Использование директив и параметров

Общие принципы программирования

Объектно-ориентированное программирование

Использование выражений и значений идентификаторов

Директивы выбора процессора

Использование моделей памяти программы и сегментации

Определение типов данных

Задание и использование счетчика адреса

Описание процедур

Управление областью действия идентификаторов

Определение данных

Расширенные инструкции

Использование макрокоманд

Использование условных директив

Интерфейс с компоновщиком

Генерация листинга

Интерфейс Турбо Ассемблера и Borland C++

Интерфейс Турбо Ассемблера с Турбо Паскалем

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь