Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR_1_MZYaP.doc
Скачиваний:
12
Добавлен:
22.09.2019
Размер:
673.79 Кб
Скачать

Метка Команда Операнды

Метка, команда и операнды разделяются по крайней мере одним пробелом. Метка может содержать буквы, цифры, специальные символы и начинаться с буквы, Ассемблер не делает различия между заглавными и строчными буквами.

Операнд определяет начальное значение данных или элементы, над которыми

выполняется действие.

Метка Команда Операнд

const    db   1 

mov  ax,0 

Коментарии

Комментарий начинается с символа « ; », все символы после точки с запятой

игнорируются.

Создание программы в среде разработки RadAsm

Среда разработки RadASM представляет собой среду разработки программного обеспечения для ОС Windows, изначально предназначенную для написания программ на языке ассемблера. Имеет гибкую систему файлов настроек, благодаря чему может быть использована как среда разработки программного обеспечения на высокоуровневых языках, а также документов, основанных на языках разметки.

Проект представляет собой набор файлов. В файле «Имя_проекта.rap» (расширение – rap) содержится информация о настройках проекта; файлах, входящих в проект. Помимо этого файла, проекта так же содержит файл «Имя_проекта.asm» (расширение – asm) – файл, содержащий основную часть программы. Так же могут входить дополнительные файлы.

Главное окно программ при запуске выглядит следующим образом (рисунок 1).

Окно программы содержит несколько областей: панель меню; панель инструментов; рабочую область; обозреватель проектов; свойство проекта и так далее, которые можно настроить при необходимости.

Для создания нового проекта необходимо зайти в меню «Файл» и выбрать пункт «Новый проект» (рисунок 2).

Рисунок 2 – Окно пункта меню «Файл»

В выпадающем списке «Ассемблер» необходимо выбрать строку «masm» (рисунок 3). Тип проекта – «Console App». Ввести имя проекта. Имя проекта должно содержать ОДНО СЛОВО БЕЗ ПРОБЕЛОВ. При необходимости ввести описание. По умолчанию проекты сохраняются в папке «radasm\Masm\Projects», где radasm – имя папки, содержаий среду. Необходимости указать местоположение проекта на диске D:\\... Нажать кнопку «Next >».

Рисунок 3 – Выбор типа проекта

Далее необходимо выбрать базовый шаблон проекта (рисунок 4). Шаблоны находятся в папке «radasm\Masm\Templates\». В шаблоне уже прописан базовый код, общий для всех проектов и необходимые настройки компилятора и отладчика. После создания проекта, в редакторе будет загружена программа (рисунок 5). В данной лабораторной работе не используется шаблон (Нажимаем «Next >».)

Рисунок 4 – Выбор шаблона проекта

Предпоследнее окно Мастера предлагает выбрать типы создаваемых файлов – выбираем Asm (исходные файлы ассемблера), и папки – выбираем папку Bak, используемую для размещения предыдущих копий файлов(рисунок 5).

Рисунок 5 – Выбор типов файлов и папок

Последнее окно Мастера определяет доступные для работы с проектом пункты меню запуска приложения Создать и выполняемые команды. В данной сборке выполняемые команды уже настроены, поэтому в нем можно ничего не менять, хотя использоваться будут не все пункты созданного меню, а только следующие: Assemble (транслировать или, точнее, ассемблировать), Link (компоновать), Run (выполнить) и Run w/Debug (выполнить в подключенном отладчике).

Рисунок 6 – Пункты меню запуска приложения

В результате будет получена пустая заготовка консольного приложения Windows. Просмотреть эту заготовку можно, дважды щелкнув левой клавишей мыши по файлу *.asm в окне навигатора Project, расположенном справа вверху.

Далее вводим листинг программы.

Листинг 1 –Текст программы

.386

.model flat,stdcall

option casemap:none

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc

includelib \masm32\lib\kernel32.lib

include \masm32\include\user32.inc

includelib \masm32\lib\user32.lib

.data

MsgBoxCaption db "Nest Message",0

MsgBoxText db "Hello World!",0

.code

start:

invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK

invoke ExitProcess, NULL

end start

В тексте программы требуется изменить выводимую запись на «Hello (указать вашу фамилию)».

Рассмотрим следующую заготовку для консольного приложения Windows:

.386 ; подключение набора команд Реntium

.MODEL flat, stdcall ; модель памяти и

; конвенция о передаче параметров

OPTION CASEMAP:NONE ; опция различия строчных

; и прописных букв

Include kernel32.inc ; подключение описаний процедур и

Include masm32.inc ; констант

IncludeLib kernel32.lib ; подключение библиотек

IncludeLib masm32.lib

.CONST ; начало раздела констант

MsgExit DB "Press Enter to Exit",0AH,0DH,0

.DATA ;раздел инициализированных переменных

.DATA? ;раздел неинициализированных переменных

inbuf DB 100 DUP (?)

.CODE ; начало сегмента кода

Start:

;

; Add you statements Место, куда добавляется код

;

Invoke StdOut,ADDR MsgExit ; вывод сообщения

Invoke StdIn,ADDR inbuf,LengthOf inbuf ; ввод строки

Invoke ExitProcess,0 ; завершение программы

End Start ; конец модуля

Заготовка содержит:

• директивы, определяющие набор команд, модель памяти, конвенцию передачи данных и опцию различия строчных и прописных букв;

• директивы подключения библиотек;

• разделы констант, инициализированных и неинициализированных данных с минимально необходимыми директивами определения данных;

• раздел кода, процедуры в котором обеспечивают задержку закрытия окна до нажатия любой клавиши.

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