Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_FASM_Команды_МП.doc
Скачиваний:
19
Добавлен:
03.06.2015
Размер:
353.79 Кб
Скачать

4. Системный сервис

Для организации ввода или вывода следует обратиться к системному сервису ОС, используя прерывание 21h. Обращение к прерыванию требует указания в регистре процессора AH номера функции, обычно он указывается в шестнадцатеричном формате, а в других регистрах указываются коды, необходимые для работы функции. Состав этих регистров и коды зависят от конкретной функции.

Общая схема вызова системной функции:

mov AH, номер_функции

;mov – загрузка исходных данных

;в регистры процессора

int 21h ;Вызов прерывания

;Использование результатов

Для завершения работы программы служит функция 4Ch.

Вызов:

AH=4СH

AL=код завершения.

Нормальный код завершения 0.

Для ввода в программу символа без отображения его на экране служит функция 08h. Код введенного символа будет записан в регистр AL.

Чтобы вывести на экран последовательность байтов – строку используется функция 09h.

Вызов:

AH=09h

DS:DX=адрес выводимой строки.

Последний байт выводимой строки должен хранить код символа ‘$’. Для формирования строк нужно включать управляющие коды 0Ah(10) и 0Dh(13).

Пример:

mes db ‘Пример многострочного’,0ah,0dh

db ‘текста на экране’,’$’

Функции ввода – вывода приведены в приложении №1.

5. Компилирование программ

Компиляция в машинный код выполняется с помощью пункта меню Run.

Команда Run (F9) – получение машинного кода и исполнение программы. Команда Compile(^+F9) – получение файла с машинным кодом. В случае удачной компиляции выводится окно, показанное на рисунке 4.1.

Рис.5.1. Результат компиляции

На рисунке видно, что компилятор создал программу в два прохода. Размер машинного кода составляет значение 69 байтов. В случае ошибки выводится окно с кратким ее описанием и указывается команда, где произошла ошибка. Сама команда в тексте программы выделяется подсвечиванием строки. Окно ошибки показано на рисунке 5.2.

Рис.5.2. Ошибка в команде

В зависимости от типа машинного кода результат помещается в файлы с расширениями myprg.com для «COM» программ и myprg.exe для «EXE» программ.

6. Компилирование и исполнение программ в 64 разрядной версии Windows

Компилятор FASM может создавать шестнадцати разрядный код в 64 разрядной версии Windows. Однако такой код в данной операционной системе не выполняется. Для исполнения кода нужна соответствующая подсистема. В качестве такой подсистемы может быть использован эмулятор DOSBox. Данный эмулятор распространяется бесплатно на основе лицензии GNU GPL.

После установки эмулятора на компьютер пользователя нужно выполнить запуск программы с помощью пиктограммы .

Рассмотрим процесс компиляции, используя эмулятор версии 0.74 от 2010 года. После активизации программы на экран выводится два окна, так как это показано на рисунке.

Рис.6.1. Запуск эмулятора

Для продолжения работы в строке приглашения нужно ввести команду для монтирования каталога (папки) где будут размещаться откомпилированные программы. Общий формат команды примет вид:

mount имя_диска: путь_к_каталогу

Здесь имя_диска это латинская буква, к которой будет привязан каталог с файлами 16ти разрядных программ. Параметр путь_к_каталогу представляет собой путь на диске компьютера к каталогу с файлами программ.

Например. Пусть откомпилированные файлы программ располагаются в каталоге D:\ASM_EXEC компьютера. Тогда команда монтирования примет вид:

mount s: d:\asm_exec

В качестве буквы выбрана буква s , можно выбрать любую латинскую букву.

Результат выполнения команды показан на рисунке 6.2.

Рис.6.2. Монтирование каталога

При работе с эмулятором в строке приглашения могут быть использованы следующие команды:

буква_диска: - переход на монтированный носитель;

cls – очистка окна эмулятора;

dir – вывод содержания монтированного диска;

del имя_файла – уничтожение файла.

И ряд других.

Воспользуемся командой перехода на носитель и командой dir. Результат исполнения команд показан на рисунке 6.3.

Рис.6.3. Просмотр содержимого каталога

Как видно из рисунка в монтированном каталоге находится один исполняемый файл HELLO.EXE. Для запуска этой программы нужно в строке приглашение ввести имя файла программы и нажать клавишу Enter. Результат выполнения программы показан на рисунке 6.4.

Рис.6.4. Выполнение программы в эмуляторе

Для завершения работы с эмулятором следует подать команду EXIT или просто закрыть его окно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]