Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 2 / КНИГА_АСМ.docx
Скачиваний:
2
Добавлен:
09.02.2024
Размер:
160.52 Кб
Скачать
  1. 2. Предварительные сведения или азы, которые необходимо знать!

    1. 2.1. Ассемблер, что это такое?

Процессор всегда выполняет последовательность машинных команд (кодов). Любая машинная команда внешне представляет собой обычное двоичное число (например, 10001000). Очевидно, что написать в машинных кодах, какую-либо программу практически невозможно, хотя бы потому, что вероятность ошибки при написании такой программы приближается к 100%, а вероятность выявления ошибок и их исправления – к 0%. Что, например можно понять из такого фрагмента кода:

11111100

10001010

11000011

10010000

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

cli ; (11111100)

mov al, bl ; (11000011 10001010)

nop ; (10010000)

и это уже вполне читабельно. Запретить внешние прерывания, очистив флаг if (команда cli), передать байт из регистра bl в регистр al (команда mov al, bl) и выполнить пустую операцию (команда nop). С программой, заданной в таком виде вполне можно работать.

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

    1. 2.2. Как писать ассемблерную программу, и какие программы нужны для ее последующей трансляции.

Ассемблерную программу можно писать в любом редакторе. Однако, поскольку мы собираемся работать «под 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. Ими тоже можно успешно пользоваться.

Соседние файлы в папке Лаба 2