Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







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





В состав основных средств следует включить следующие программы:

ассемблер (assembler) - компилятор с языка ассемблера, т.е. программа, переводящая исходный текст программы на языке, понятном человеку (точнее сказать "на языке понятном программисту") в язык, понятный компьютеру (машинный код). Так как программы обычно составляются из нескольких частей, написанных независимо друг от друга и, зачастую, на разных языках и разными программистами, то компилятор любого языка из любого пакета создает так называемые объектные модули, т.е. файлы специального формата, содержащие помимо машинного кода другую информацию, необходимую для работы компоновщика и отладчика. В DOS и Windows такие файлы получают расширение obj, а в Unix – o;

компоновщик (linker) - программа, предназначенная для создания исполняемой программы из объектных модулей;

отладчик (debuger) - программа для поиска и локализации в программе логических ошибок или для тестирования программы (проверки на правильность работы). Может также использоваться для изучения работы "чужих" программ, которые недоступны в исходных текстах.

К числу других средств следует отнести:

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

программу, для которой недоступен исходный текст;

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

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

системе. В DOS и Windows библиотеки имеют расширение lib, а в Unix - a или la;

эмулятор (emulator) – программа, которая может понадобиться при кроссразработке, например, при программировании микроконтроллеров. Позволяет запускать машиный код “неродной” архитектуры.

Пакет OpenWatcom

Данный лабораторный практикум ориентируется на использование открытого программного обеспечения в лице пакета OpenWatcom. Его "домашняя страничка" - http://www.openwatcom.org/.

Здесь можно получить исходные тексты пакета и установочные программы для Windows и OS/2.

Плюсы данного подхода:

• бесплатность и общедоступность полнофункционального программного обеспечения;

• совместимость в разных смыслах с популярными, но закрытыми пакетами Borland Turbo Assembler (TASM) и Microsoft Macro Assembler (MASM);

• использование для ассемблера синтаксиса Intel, позволяющее продолжать разрабатывать программы на ассемблере, написанные для пакетов TASM и MASM, и использовать широко распространенную и доступную документацию и литературу (прежде всего на русском языке);

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

Недостатки данного подхода:

• ориентация пакета на платформы DOS, Windows и OS/2, т.е. невозможность использования данного пакета на платформе Unix и, как следствие, невозможность использования навыков программирования на языке ассемблера, полученных в среде Unix;

• отставание в поддержке современных платформ по сравнению с другими открытыми средствами разработчика, такими как, Netwide Assembler (NASM), Flat Assembler (FASM) и GNU Assembler (GNU as).

 

Основные инструментальные средства, входящие в состав пакета

В состав пакета OpenWatcom входят следующие базовые средства разработки программного обеспечения на языке ассемблера:

• wasm - компилятор с языка ассемблера;

• wlink - компоновщик объектных модулей в исполняемую программу;

• wd - интегрированная среда предназначенная для отладки и дизассемблирования программ.

 

Компиляция и компоновка

Будем считать, что файл программы на языке ассемблера называется main.asm.

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

По умолчанию пакет OpenWatcom устанавливается в каталог c:\watcom. Тогда переменную PATH нужно дополнить значением c:\watcom\binw.

set PATH=c:\watcom\binw;%PATH%

Компиляция ассемблерного модуля осуществляется следующей командой:

Wasm main.asm

А компоновка в исполняемую программу формата exe операционной системы DOS:

Wlink file main.obj form dos

Для компиляции и компоновки можно также воспользоваться следующим пакетным файлом DOS/Windows (compile.bat):

@echo off

Cls

c:\watcom\binw\wasm main.asm

If errorlevel 1 goto ERROR

c:\watcom\binw\wlink file main.obj form dos

If errorlevel 1 goto ERROR

Exit

:ERROR

echo ERROR!

Кроме того, необходимо убедиться, что в файле c:\autoexec.bat присутствуют следующие команды:

SET PATH=C:\WATCOM\BINNT;C:\WATCOM\BINW;%PATH%

SET WATCOM=C:\WATCOM

SET EDPATH=C:\WATCOM\EDDAT

SET INCLUDE=C:\WATCOM\H;C:\WATCOM\H\NT

SET FINCLUDE=C:\WATCOM\SRC\FORTRAN

Если это не так, то эти команды следует включить в вышеприведенный файл compile.bat. (Это необходимо для нормальной работы OpenWatcom.)

Отладка

Отладчик запускается командой

Wd main.exe

Можно также воспользоваться таким командным файлом (debug.bat):

@echo off

Cls

if not exist main.exe echo main.exe не существует!

If not exist main.exe goto EXIT

c:\watcom\binw\wd main.exe

:EXIT

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

Пошаговое выполнение программы осуществляется с помощью клавиш F8 (с заходом в процедуры) и F10 (без захода в процедуры).

Ниже кратко описаны три постоянно развивающихся и совершенствующихся

многоплатформенных компилятора использующих оригинальный синтаксис языка ассемблера.

Компилятор Netwide Assembler

Компактный и многоплатформный (DOS, Windows, Unix) компилятор базирующийся на синтаксисе Intel. Часто используется в Unix на x86-32 вместо "родного" GNU Assembler.

Домашняя страничка в Internet - http://nasm.sourceforge.net/.

В его состав входят:

• nasm - компилятор, способный генерировать исполняемые модули в формате COM (старый формат DOS) и объектные модули для компоновщика GNU ld.

• ndisasm - дизассемблер.

Кроме того, существует простая среда разработки для NASM - NASM-IDE

(http://www.inglenook.co.uk/rob)

Компилятор Flat Assembler

Простой и многоплатформный (DOS, Windows и Unix) компилятор с оригинальным синтаксисом базирующимся на синтаксисе Intel. Домашняя страничка - http://www.flatassembler.net/.

2.5 Компилятор GNU Assembler и синтаксис AT&T

Основной компилятор ассемблера для Unix-подобных операционных систем GNU, Linux, FreeBSD, NetBSD и OpenBSD. Разработан в рамках проекта GNU (http://www.gnu.org/).







Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.