Лекции по Вычислительным машинам, системам и сетям   

5. Программирование на языке Ассемблер

5.1. Как писать ассемблерную программу

Процессор всегда выполняет последовательность машинных команд (кодов). Любая машинная команда представляет собой двоичное число (например, 10001000). Очевидно, что написать в машинных кодах какую-либо программу практически невозможно хотя бы потому, что вероятность ошибки при написании программы прибли-жается к единице, а вероятность выявления ошибок и их исправления – к нулю. В начале 50-х гг. XX века было предложено ввести для каждой машинной команды понятный человеку символический эквивалент. Так появился язык Ассемблер, т.е каждой ассемблерной команде соответствует машинная команда и наоборот.

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

Ассемблерную программу можно писать в любом редакторе. Однако, поскольку работаем «под DOS», т.е. скорее всего находимся в одной из таких сред, как DOS NAVIGATOR или FAR (или нечто подобное), то логично использовать встроенный редактор среды, в которой работаем.

Смело жмем Shift-F4 и в ответ на запрос называем наш файл, например, оригинальным названием Lab1.asm. Самое главное, не забыть поставить расширение ASM. Если назовем файл, допустим, Lab1, то при трансляции программы транслятор выдаст сообщение: Cant locate file Lab1.asm. Это означает, что транслятор не нашел файл Lab1.asm. Иначе говоря, транслятор работает только с файлами, имеющими расширение ASM.

После того как программа написана, ее надо оттранслировать и получить из нее исполняемый файл (с расширением COM или EXE). Пока не будем рассказывать, как это делается, а остановимся на том, какие программы нужны для трансляции и где их можно найти.

Нужны две программы: TASM.EXE (собственно транслятор) и TLINK.EXE (редактор связей). Зачастую TLINK требует для своей работы наличия еще нескольких (чаще всего трех) сопровождающих файлов: DPMILOAD.EXE, DPMIMEM.DLL, DPMI16BI.OVL (или нечто подобное). Помните, если программе TLINK недостает какого-либо файла, то TLINK сам при запуске об этом подробно напишет.

Кроме того, для отладки программ понадобится еще один файл: отладчик TD.EXE (Turbo Debugger). Этот отладчик позволяет выполнять программу в пошаговом режиме и одновременно следить за изменением информации в регистрах, памяти, стеке и на экране.

Все эти файлы находятся в компьютере, если на нем установлен хотя бы один язык высокого уровня (Паскаль, Си, Си++, Delphi и т.д). В любом из этих языков в поддиректории BIN найдете все вышеуказанные файлы.

Существуют и другие трансляторы, редакторы связей и отладчики, например MASM, LINK, AFD. Ими тоже можно успешно пользоваться.



*****
Новосибирск © 2009-2017 Банк лекций siblec.ru
Лекции для преподавателей и студентов. Формальные, технические, естественные, общественные, гуманитарные, и другие науки.