В большинстве случаев, независимо от выбранного языка программирования, предлагается следующая методика разработки программ (с учетом специфики языка ассемблер):
1. Этап постановки и формулировки задачи:
— изучение предметной области и сбор материала в проблемно-ориентированном контексте;
— определение назначения программы, выработка требований к ней представление требований в формализованном виде;
— формулирование требований к представлению исходных данных и выходных результатов;
— определение структуры входных и выходных данных;
— формирование ограничений и допущений на исходные и выходные данные.
2. Этап проектирования:
— формирование «ассемблерной» модели задачи;
— выбор метода реализации задачи;
— разработка алгоритма реализации задачи;
— разработка структуры программы в соответствии с выбранной моделью памяти.
3. Этап кодирования:
— уточнение структуры входных и выходных данных и определение ассемблерного формата их представления;
FASM. Установка FASM. Структура программы на ассемблере. Урок 1
— комментирование текста программы и составление предваритель-ного описания программы.
4. Этап отладки и тестирования:
— составление тестов для проверки правильности работы программы;
— обнаружение, локализация и устранение ошибок в программе, выявленных в тестах;
— корректировка кода программы и ее описания.
5. Этап эксплуатации и сопровождения.
Традиционно у существующих реализаций ассемблера нет интегрированной среды, подобной интегрированным средам Turbo Pascal, Turbo С или Visual C++, поэтому для выполнения всех функций по вводу кода программы, ее трансляции, редактированию и отладке необходимо использовать отдельные служебные программы. Большая часть их входит в состав специализированных пакетов ассемблера.
Общая схема процесса разработки программы на ассемблере приведена на рис. 4.10.
1. Ввод исходного текста программы |
2. Создание объектного модуля |
3. Создание загрузочного модуля |
4. Отладка программы |
Рис. 4.10. Процесс разработки программы на ассемблере
На первом шаге с использованием любого текстового редактора вводится код программы, т.е. создается исходный файл. Основным требованием к текстовому редактору является то, чтобы он не вставлял посторонних символов (спецсимволов редактирования). Файлу целесообразно задавать расширение asm. (В программной оболочке Norton Commander текстовый файл создается при нажатии клавиш Shift+F4).
Второй шаг — трансляция программы. На этом шаге формируется, объектный модуль, который включает в себя представление исходной программы в машинных кодах и некоторую другую информацию, необходимую для отладки и компоновки его с другими модулями.
Третий шаг разработки программы — создание исполняемого (загрузочного) модуля или компоновка программы. Главная цель этого шага — преобразовать код и данные в одном или нескольких объектных файлах (исходные модули могут быть написаны на одном или нескольких языках) в их перемещаемое выполняемое изображение. Результатом работы компоновщика является создание загрузочного файла с расширением ехе. После этого операционная система может загрузить такой файл в память и выполнит его.
Как я стал программистом на ассемблере / #itstory2019
Получение исполняемого модуля, т.е. фактическое устранение синтаксических ошибок, еще не гарантирует того, что программа будет хотя бы запускаться, не говоря уже о правильности работы. Поэтому обязательным этапом процесса разработки является отладка. На этом этапе выполняется контроль правильности функционирования как отдельных участков кода, так и всей программы в целом.
Вопросы и задания для самопроверки
1. Центральный процессор: назначение и структура.
2. Принципы работы центрального процессора.
3. Виды памяти ЭВМ.
4. ОЗУ, ПЗУ, CMOS, специальная память.
6. Внешние устройства хранения информации.
7. Структура команды на языке ассемблер.
8. Способы адресации в команде ассемблера.
9. Структура программы на языке ассемблер.
10. Команды микропроцессора. Приведите пример.
11. Исходная и объектная программы.
12. Этапы разработки программы на языке ассемблер.
13. Написать команды на ассемблере, позволяющие выполнить следующие действия:
а) Поместить число из регистра H в аккумулятор.
б) Записать в регистры H и L адрес ячейки памяти 201016.
в) Число в аккумуляторе сложить с числом, адрес которого записан в регистрах H и L.
г) Сложить содержимое аккумулятора с числом 1816 (число взять из команды).
ГЛАВА 5. Устройство персонального компьютера
Источник: studopedia.su
Процесс разработки программы на языке ассемблера
Общая схема процесса разработки программы на ассемблере включает 4 этапа.
- Ввод исходного текста программы.
- Создание объектного модуля.
- Создание загрузочного модуля.
- Отладка программы.
Трансляция программы
На этапе трансляции осуществляется перевод команд ассемблера в соответствующие машинные команды. В результате трансляции формируются файл объектного модуля и файл листинга. Объектный модуль включает в себя представление исходной программы в машинных кодах и некоторую другую информацию, необходимую для отладки и компоновки его с другими модулями.
При использовании пакета TASM получение объектного модуля исходного файла производится программой (ассемблером) tasm.exe. Формат командной строки для запуска tasm.exe следующий: TASM [ключи] имя_исходного_файла [, имя_объектного_файла] [, имя_файла_листинга] [, имя_файла_перекрестных_ссылок] tasm.exe prg_6_l , , , tasm.exe prg_6_l , ,prg_list, tasm.exe prg_6_l , , n u l , Ключ /z разрешает вывод на экран строк исходного текста программы, в которых ассемблер обнаружил ошибки. Ключ /zi управляет включением в объектный файл номеров строк исходной программы и другой информации, не требуемой при выполнении программы, но используемой отладчиком.
Компоновка программы
Полный формат командной строки для запуска компоновщика: TLINK [ключи] список объектных файлов [,имя загрузочного модуля] [,имя файла карты] [,имя файла библиотеки] [,имя файла определений] [,имя ресурсного файла] Отладка программы Запуск отладчика удобнее производить из командной строки с указанием исполняемого модуля отлаживаемой программы: td имя_исполняемого_модуля Запустить программу в отладчике можно в одном из четырех режимов:
- Безусловное выполнение (F9).
- Выполнение по шагам (F7, F8).
- Выполнение до текущего положения курсора (F4).
- Выполнение с установкой точек прерывания (F2, F9) .
Макросредства языка ассемблераМакросредства – средства модификации текста программы во время ее трансляции. Предназначены для облегчения написания программ на языке ассемблера и для улучшения понимания исходного текста программы. Программа, написанная на макроязыке, транслируется в два этапа.
- Этап макрогенерации.
- Этап ассемблирования.
Схема взаимодействия элементов макросредств
Макроопределения Описание макроса, т.е. макроопределение, имеет следующий вид: MACROENDMМакрокоманды Обращение к макросу осуществляется через макрокоманду, которая записывается следующим образом: После выполнения макроподстановки формируется макрорасширение. Пример: Макроопределение SUM MACRO S1, S2, REZ PUSH AX MOV AX, S1 ADD AX, S2 MOV REZ, AX POP AX ENDM Макрокоманда SUM 5, ALFA, BX Макрорасширение PUSH AX MOV AX, 5 ADD AX, ALFA MOV BX, AX POP AX
Источник: studfile.net
Этапы разработки программы на ассемблере
Ассемблер представляет собой машинный язык в символической форме, которая достаточно понятна и удобна программисту. Наиболее распространенными являются ассемблер фирмы Microsoft -MASM и Turbo Assembler фирмы Borland — TASM. Они очень похожи, однако мы будем пользоваться пакетом программ TASM, в который входят три нужные нам программы: Turbo Assembler (tasm.exe), Turbo Link (tlink.exe) Turbo Debugger (td.exe).
Полный цикл создания программы на Ассемблере можно представить в виде последовательности четырех этапов (рис. 4.3).
Рис. 4.3 — Этапы создания ассемблерной программы
Исходный модуль программы создается в любом текстовом редакторе, например в «Блокноте» и сохраняется в виде файла с именем, присвоенным по правилам MS DOS , с обязательным расширением asm: XXXXXXXX.asm (например, hello_l.asm).
Правила MS DOS предусматривают для имен файлов использование символов английского алфавита и арабских цифр. Число символов в имени не должно превышать восьми, в расширении трех.
Для получения исполняемого модуля, который можно запустить на выполнение, требуется последовательно выполнить этапы ТРАНСЛЯЦИИ и КОМПОНОВКИ. Для этого используются программы, входящие в состав пакета ассемблера TASM фирмы Borland.
Трансляция производится с помощью компилятора [1] Турбо Ассемблера, который является исполняемой программой tasm.exe, работающей в режиме командной строки. Вызов компилятора производится командой DOS:
tasm /z /zi /п , где /z — ключ, разрешающий вывод на экран строк исходного текста программы, в которых ассемблер обнаружил ошибки;
/zi — ключ, управляющий включением в результирующий файл полных сведений о номерах строк и именах исходного модуля;
/п — ключ, который исключает из листинга информацию о символических обозначениях в программе.
Следующие далее параметры определяют имена файлов исходного (*.asm), объектного (*.obj) и листинга (*.lst). Причем в командной строке достаточно указать только имена файлов, без расширений, например
tasm /z /zi /п hellol hellol hellol
Если исходный модуль не содержит ошибок, то на экран выводится сообщение об успешной трансляции, а в текущем каталоге появится новые файлы — объектный (hello l.obj) и листинга (hello_l.lst).
Компоновка объектных модулей с библиотечными модулями производится вызовом программы-компоновщика tlink.exe из командной строки:
Ключ /v передает в загрузочный файл информацию, используемую при отладке программ.
Следующее далее имя файла обозначает имя объектного модуля. Расширение в этом имени можно не указывать.
Для нашего примера компоновка будет осуществляться следующей командой:
tlink /v hello l
В случае успешного окончания компоновки в текущем каталоге появляется исполняемый файл — загрузочный модуль hello_l.exe, и файл карты сборки hello_l.map.
Загрузочный модуль может быть запущен на выполнение командой DOS
hello_l.exe .
Для отладки создаваемых программ используется программа-отладчик Turbo Debugger (td.exe).
Если на каком-то этапе создания программы появляются сообщения об ошибках, либо ошибки выявляются на стадии отладки, то требуется внести коррективы в исходный модуль и вновь выполнить этапы трансляции и компоновки.
- [1] Компилятор транслирует весь текст исходного модуля в ходе одного непрерывного процесса. При этом создается объектный модуль, который далее обрабатывается без участия компилятора.
Источник: bstudy.net