Научная статья на тему 'ИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ ASM VISUAL ДЛЯ ПРОЕКТОВ НА ЯЗЫКЕ АССЕМБЛЕР'

ИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ ASM VISUAL ДЛЯ ПРОЕКТОВ НА ЯЗЫКЕ АССЕМБЛЕР Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
260
45
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ассемблер / компиляция / отладка / разработка / среда / IDE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гриценко Алексей Викторович

Статья посвящена комплексному анализу процесса создания, сборки, отладки и компиляции проектов на языке ассемблер с использованием интегрированной среды разработки ASM Visual. Озвучены преимущества и ключевые особенности работы в данной среде, а так же приведен пример тестового программного кода, его компиляции и запуска.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ ASM VISUAL ДЛЯ ПРОЕКТОВ НА ЯЗЫКЕ АССЕМБЛЕР»



I

SCIENCE TIME

I

ИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННОИ СРЕДЫ РАЗРАБОТКИ ASM VISUAL ДЛЯ ПРОЕКТОВ НА ЯЗЫКЕ АССЕМБЛЕР

Гриценко Алексей Викторович, Донской государственный технический университет (ДГТУ), г. Ростов-на-Дону

E-mail: express-rus@yandex.ru

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

Ключевые слова: ассемблер, компиляция, отладка, разработка, среда,

IDE.

На сегодняшний день разработка программных модулей и продуктов на языке Ассемблер (assembly) не теряет своей актуальности. Являясь низкоуровневым языком программирования с весьма небольшим уровнем абстракции, Ассемблер дает разработчику возможность максимально приблизиться к системе команд микропроцессора, что в свою очередь позволяет создавать быстрые, экономные в использовании памяти решения, тесно связанные с аппаратной частью компьютерных систем.

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

Для того чтобы программа, написанная на языке Ассемблера, могла быть запущена пользователем, необходимо преобразовать понятный человеку набор инструкций этой программы в машинный код. Преобразование это, как правило, делается автоматически при помощи другой вспомогательной программы и

1 SCIENCE TIME 1

называется компиляцией.

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

Достаточно длительное время написание программ на языке ассемблера производилось в консольных, либо примитивных графических редакторах (не редко без подсветки синтаксиса). Чтобы скомпилировать программу, необходимо было сохранить файл с исходным кодом, зайти в консоль и вручную запустить компилятор.

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

Для того, чтобы оптимизировать процесс разработки и отладки, были придуманы IDE (integrated development environment) или интегрированные среды разработки. Отличительной чертой любой IDE является совмещение текстового редактора (с подсветкой синтаксиса, нумерацией строк и других вспомогательных инструментов) с функциональностью отладки, выявлением и выводом ошибок, компиляции конечной программы.

Одним из таких решений, упрощающих процесс разработки и тестирования программ, создаваемых на языке ассемблера, является IDE ASM Visual (https://gri -software.com/ru).

Данная IDE разработана под платформу Windows (рекомендуется использовать Windows 7, либо более поздние версии) и представляет из себя оболочку для разработки программ на различных версиях языка Ассемблера.

В настоящий момент поддерживаются версии языка для компиляторов: MASM, FASM, TASM.

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

Также данная IDE позволяет использовать сторонние отладчики кода:

WinDbg, OllyDbg, TD, x64dbg.

56

I

SCIENCE TIME

I

Рис. 1 Интерфейс IDE «ASM Visual»

Рис. 2 Настройки зависимостей со сторонними отладчиками

57

I

SCIENCE TIME

I

Основными возможностями, которые предоставляет данная оболочка разработчику, являются:

- шаблоны программ с выделенными и частично заполненными секциями;

- подсветка синтаксиса;

- запуск на исполнение или отладку;

- подсветка строк с ошибками компиляции;

- автодополнение кода и подсказки;

- метрики кода;

- сниппеты;

- настройка параметров проекта;

- обзор структуры проекта;

- справка.

ASM Visual обладает дружественным интерфейсом и позволяет облегчить создание программ на языке ассемблера. Каждый проект, с которым ведется работа, располагается в правой части экрана в отдельной папке. Область ввода и редактирования программного кода занимает большую часть экрана. Для создания нового проекта необходимо выбрать в верхнем меню: Файл > Создать новый проект, после чего на экране появится окно с Ф конфигурацией будущего проекта (см. рис. 3).

Рис. 3 Создать новый проект

После выбора требуемой конфигурации, IDE создаст новый проект, а так же заполнит область для редактирования тестовым кодом-примером в главном фале проекта. В нашем случае создадим проект типа masm64. Несмотря на то, что он уже заполнен средой начальным кодом, попробуем переписать код по своему и тщательно прокомментируем каждый шаг (см. рис. 4).

58

«

I

SCIENCE TIME

I

D

Файл ! u

a

ASM VISUAL - TEST1

Правка Проект Настройки Справка И* Ç* Debug - ► WinDbg

;проект masm64

OPTION DOTNAME ■ разрешить использовать точку в имени переменной option casemap:none \ различать в именах Строчные и прописные буквы

include includes\temphls.inc ; в этом файле описание invoke и другие высокоуровневые инстру include includes\win64.inc ; здесь описаны константы NULL и МВ_ОК include includes\kernel32.inc ; здесь описаны функции из библиотеки kernel32.dll includelib includes\kernel32.lib

include includes\usen32.inc ; здесь описаны функции из библиотеки userl32.dll includelib includes\usen32.1ib

OPTION PROLOGUE:none OPTION EPILOGUE:none

пролог функций пишем сами эпилог функций пишем сами

& I - п

Обозреватель проектов J? X

f* Параметры проекта Л Файлы исходного кода testl.asm

Iii kernel32.inc III kernel32.lib III temphls.inc

III user32.inc III user32.lib III win64,inc

.data ; данные

MsgCaption db "Win64 Iczelion's lesson #2: MessageBox",0

MsgBoxText db "Win64 Assembly is Great! ".,0

.code ; код программы

WinMain proc

sub г5р,В*8 jрезервируем стек

invoke MessageBox, NULL, &MsgBoxText, &MsgCaption, MB_OK ;вызыв invoke ExitProcess,NULL jзавершаем работу программы (процесс) WinMain endp end

1ем окошко с сообщением

Список: ошибок:

ОПИСАНИЕ ФАЙЛ СТРОКА

Вывод □ Лог ID! Symbols Й, Список ошибок M Л01

Рис. 4 Редактирование кода проекта

у ОбозреЕ

Code Exp...

Для того, чтобы добавить в свой проект вспомогательные файлы, необходимо в правой части экрана нажать правой кнопкой мыши на пункт «Файлы исходного кода» и выбрать из выпадающего меню «Создать файл» или «Существующий файл» в зависимости от того, хотим мы написать новый модуль для своей программы или подключить существующий (см. рис. 5).

[ Открыть !▼] [ Отмена

Рис. 5 Добавить файлы к проекту

Во время непосредственного написания программного кода, значительно ускорить процесс разработки поможет режим автодополнения.

Если начало вводимой команды совпадает с функциями выбранного типа

59

I

SCIENCE TIME

I

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

Рис. 6 Автодополнение пользовательского ввода

Кроме автодополнения будет показана подсказка с описанием вводимой команды или объекта. Также всплывающие подсказки в дальнейшем могут быть показаны при наведении курсора на слова в коде.

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

Рис. 7 Обозреватель кода

I

SCIENCE TIME

I

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Для того, чтобы скомпилировать свой проект, необходимо выбрать в верхнем меню:

Проект > Собрать проект

либо нажать на изображение зеленого треугольника (см. рис.8).

^ ASM VISUAL - PROG:

Файл Правка

Проект

Настронки С_равка

^ ASM VISUAL - PROG:

Файл Правка Проект Настройки Справка

та л> LO 1

¡л" пГ 2

3

р\ 4

~п Й1

Сзсиства пэоекгз Со6эа-ь -pes-а Очисти_ь сбозкг' гроеьга

ДсбЗЕ^Тг. НСЕЬМ .ЭЕГ1П ()*аЙЛ

Расс-итэ"ь метрики кода

Ы С Debug

' ► IDE р V

п> 42

. 386

.model flatj stdcall

1

2

3

4

4

aM2

; Новый проект mamm2 yene j Заполнен демо программой

.386

.model flat} stdcall

R nn+ "i nn raíeman

Рис. 8 Собрать проект

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

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

Литература:

1. Коханович, Г.Ф. Компьютерная стеганография: теория и практика / Коханович, А.И. Пузыренко. - К.: МК-Пресс, 2006. - 288 с.

2. Грибунин В.Г., Оков И.Н., Туринцев И.В. Цифровая стеганография. -Солон-Пресс, 2002. - 272 с.

Г.Ф. М.:

61

i Надоели баннеры? Вы всегда можете отключить рекламу.