Теперь программу можно запустить на выполнение. Для этого в ответ на подсказку операционной системы DOS введите “ hello” и Enter. На экран выведется сообщение: Привет! Так как ваша программа небольшая, то сообщение очень быстро промелькнет на экране, и вы можете его не заметить. Для того чтобы остановить изображение на экране, нажмите клавиши Ctrl + O. Тогда результаты выполнения вашей программы вновь появятся на экране. Чтобы вернуться в исходное состояние, вновь кликните Ctrl + O. Вы только что выполнили свою первую программу на Ассемблере.
Таким образом, при написании и запуске программы, вы выполняете следующие шаги:
1. Создание алгоритма программы.
2. Написание исходного текста программы, желательно в редакторе FARа, с расширением ASM и именем по выбору.
3. Сохранение исходного текста (F2).
4. Транслирование исходного текста программы в объектный модуль, с помощью трансляторов MASM или TASM. Для чего занесите в командную строку команду MASM имя программы .ASM и нажмите четыре (4) раза ENTER, или TASM имя программы и кликните один раз ENTER.
5. При выводе строк с ошибками в синтаксисе команд, исправьте ошибки и повторите пункты 3, 4.
6. При получении объектного кода программы, (Вы это увидите по появлению файла с именем Вашей программы и расширением .OBJ.), занесите в командную строку команду - Link имя программы, и кликните четыре раза (4) ENTER, или Tlink имя программы и нажмите один раз ENTER.
7. В результате Вы получите исполняемый модуль программы. Вы это увидите по появлению файла с именем вашей программы и расширением .EXE.
8. Выделив этот файл и кликнув ENTER, вы заставите процессор исполнить программу.
9. Повторив нажатие, вы вернетесь в исходное состояние.
10. Сообщения о ошибках указаны в таблицах 6.1 и 6.2.
11. Результат выполнения программы Вы увидите на экране, если одновременно нажмете клавиши Ctrl и О.
Примеры программ на языке ассемблера.
5.1 Умножение двойных слов. (СОМ – программа)
TITLE EXDWMUL - Умножение двойных слов
CODESG SEGMENT PARA 'Code'
ASSUME CS:CODESG,DS:CODESG,SS:CODESG
ORG 100H; Установить IP равным 100Н
BEGIN: JMP SHORT MAIN; Передать управление на метку MAIN.
MULTCND DW 3206H; Элементы данных.
DW 2521H
MULTPLR DW 6400H
DW 0A26H
PRODUCT DW 0
DW 0
DW 0
DW 0
MAIN PROC NEAR; Основная процедура
Call E10XMUL; Вызвать процедуру 1-го умножения.
Call Z10ZERO; Вызвать процедуру очистки произведения.
Call F10XMUL; Вызвать процедуру 2-го умножения.
Ret; Вернуться в основную программу.
MAIN Endp; Конец процедуры.
Процедура умножение двойного слова на слово
E10XMUL PROC
Mov AX,MULTCND+2; Переслать младшую часть двойного слова
Mul MULTPLR; в АХ и умножить на множитель.
Mov PRODUCT+4,AX; Сохранить произведение, находящееся в
Mov PRODUCT+2,DX; регистрах AX и DX.
Mov AX,MULTCND; Переслать старшую часть двойного слова
Mul MULTPLR; в АХ и умножить на множитель.
Add PRODUCT+2,AX; Сложить результат
Adc PRODUCT,DX; с полученным ранее.
Ret; Вернуться в основную программу.
E10XMUL Endp; Конец процедуры.
Процедура умножения двух двойных слов
F10XMUL PROC
Mov AX,MULTCND+2; Второе слово множимого.
Mul MULTPLR+2; Второе слово множителя.
Mov PRODUCT+6,AX; Сохранить результат находящися
Mov PRODUCT+4,DX; в регистрах AX и DX.
Mov AX,MULTCND; Первое слово множимого.
Mul MULTPLR; Первое слово множителя.
Add PRODUCT+4,AX; Сложить
Adc PRODUCT+6,DX; с предыдущим результатом.
Adc PRODUCT,00; Прибавить перенос.
Mov AX,MULTCND; Первое слово множимого.
Mul MULTPLR+2; Второе слово множителя.
Add PRODUCT+4,AX; Сложить с предыдущим
Adc PRODUCT+6,DX; результатом.
Adc PRODUCT,00; Прибавить перенос.
Mov AX,MULTCND; Первое слово множимого.
Mul MULTPLR; Первое слово множителя.
Add PRODUCT+2,AX; Сложить с предыдущим
Adc PRODUCT,DX; результатом.
Ret; Вернуться в основную программу.
F10XMUL Endp; Конец процедуры.
Дата: 2018-11-18, просмотров: 465.