Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 27.11.2008, 08:06   #1
Заблокирован
 Капитан
Аватар для Ivan_32
 
Ivan_32 душа компанииIvan_32 душа компанииIvan_32 душа компанииIvan_32 душа компанииIvan_32 душа компанииIvan_32 душа компанииIvan_32 душа компанииIvan_32 душа компании
Регистрация: 14.05.2008
Сообщений: 253
Популярность: 1015
Сказал(а) спасибо: 666
Поблагодарили 451 раз(а) в 173 сообщениях
Отправить сообщение для Ivan_32 с помощью ICQ Отправить сообщение для Ivan_32 с помощью Telegram Отправить сообщение для Ivan_32 с помощью Skype™
 
Post Установка IDE и первая программа на MASM.

Думаю многие будущие ассемблерщики столкнулись с насущной проблемой под названием: неудобно компилировать. Ниже я опишу все что потребуется для нормальной жизни.

Перво наперво нужно определится с ассемблером. Поскольку сам лично я юзаю MASM то и тут его опишу.
Итак качаем [Ссылки могут видеть только зарегистрированные пользователи. ]. Распаковываем , жмем установить. Лучше всего устанавливать на диск C:\ ,весит он немного, не придется корректировать пути для сред разработок.
------------------------------------------------------------------------------------------------------------
Переходим к следующему пункту. Вы удивитесь но под MASM32 есть целых 3 среды разработки. Но по слухам одна померла.

MASM-Bulider
Делфи-подобная среда разработки, достаточно удобные средства редактирования форм - фактически она их же и лепит вместе со всем кодом.
[Ссылки могут видеть только зарегистрированные пользователи. ]

WinASM Studio
Что то очень похожее на предыдущее, но с большими сходствами с MSVS. Редактор ресурсов, всякие мелкие утилитки. Вобщем работать можно.
[Ссылки могут видеть только зарегистрированные пользователи. ]

RadASM
А вот это то чем пользуюсь я. "Мультиязыковая" среда разработки.
Первое слово в кавычках потому что лично у меня получается нормально писать только на MASM-е. Да в общем то ничего другого и не нужно от нее. Редактор ресурсов тоже присутствует.
[Ссылки могут видеть только зарегистрированные пользователи. ]



Итак ничанаем настройку инструментария:

Первым будет MASMBuilder:
1. Открываем скачанный архив и распаковываем содержимое в желаемую папку. Например D:\Program_Files\MASMBuilder\
2. Запускаем и начинаем работать =)

Неожиданно не правда ли? Но такова правда, из всех сред эта единственная будучи распакованной сразу же дала возможность приступить к работе. Но это вовсе не означает что она лучшая.

Вторым будет WinASM Studio:
1. Распаковываем студию в желаемую папку.
2. Теперь в вернем меню найдите вкладку Tools->Options.
3. Во окне options вторым пунктом идет "Files and Paths".
4 Далее берем и переустанавливаем пути для:
Binary Path -> C:\MASM32\Bin
Include Path -> C:\MASM32\include
Library Path -> C:\MASM32\Lib

Это если у вас MASM32 установлен на Диск C:\.
5. При создании проекта нужно будет указать нормальную папку для проектов, не создавайте ее где попало... Например возьмите C:\WinAsm\Projects\New_Project.
После всех вышеперечисленных операций WinAsm Studio готова к работе.

Переходим к последней IDE, RadASM:
1.Качаем следущие пакеты с оффсайта:
2.2.1.4 IDE pack (878K)
RadASM programming pack (943K)

2.Распаковываем всё в одну папку.
3 Среда готова к разработке. Только при создании проекта нужно будет выбирать язык - MASM и тип проекта Win32, далее Win32 EXE и соглашатся на все что предложит студия.


Теперь когда мы со всем уже ознакомились перейдем к самому написанию программ:
В этом гайде я опишу как написать простейшее приложение Hello world.

Программа на MASM усложнена его препроцессором который условно делить исходник на 3 части.

1. В каждом исходнике первыми строками идет обьявление набора используемых комманд. .x86 от 1 до 6, я лично использую .586
Точка "." это что то вроде начального оператора сигнализируещго о том что следущее слово относится к препроцессору. Поэтом .586 это директива а 586 это просто число... Также после этого идет обьявление используемых библиотек и инклуд файлов.

";" это оператор комментирования, он только на одну строку, больше никаких других способов закомментировать строку нет. Аналог "//" в С++

Напишем эту часть для нашей программы:
Код:
.586                  ;обьявляем набор комманд
.model flat,stdcall ;модель памяти
option casemap:none ; не будем утруждать компилятор различанием БоЛшИх и МаЛеНьКих БуКв

   include windows.inc
   include user32.inc
   include kernel32.inc    
        
   includelib user32.lib 
   includelib kernel32.lib
; в общем то это стандартный набор файлов для обычной программы.
2. Далее блок определенных и не определенных данных(зарезервированых) и констант.

Напишем и его:
Код:
.DATA
myString db "Hello world",0 ; каждая строка заканчивается нулевым символом.
myCaption db "Assembler application",0; db расщифровывается как define byte(char) , есть еще dw = define word(2 byte Short) dd =define double word(4 byte Int) Этим мы сигнализируем что каждый символ в нашей строке будет записан в ячейку в памяти , размером в 1 байт. 
.data?
lpStr db 512 dup(?) ; вот главное отличие этих двух секций, в data реальный данные а тут резервирование памяти. Строка эта создана только как пример нам она не понадобится. 
.const
Ten equ 10 ; equ - quevivalent, просто и незамысловато.=) Просто вместо  числа 10 мы сможем подставить слово Ten.
Следущий блок это блок кода , он состоит и него самого:
Код:
.CODE
start:      ;метка, она может называться как угодно главное что бы она была. Без нее программа не скомпилируется. 
;тут мы напишем наш код
invoke MessageBox,0,addr MyString,addr myCaption,MB_OK ; вызов MessageBox-а аргументы: специальное поле стиля,адрес содержимого,адрес заголовка, вид кнопки. Ключевое слово addr поставленное рядом с переменной вернет его адрес. 
invoke ExitProcess,0 ;безопасное завершение нашей программы
end start 
Вот собственно и все=) Для чистоты экспиримента, откройте QEDIT ( поставляется вместе с MASM , лежит в корневом каталоге MASM-а), создайте файл HW.asm, откройте QEDIT-ом и нажмите Project->Assemble & Link , рядом с файлом HW.asm должен появится файл HW.exe =)

Вот вы и написали простейшее виндовое приложение =)
К слову все три студии сами пишут за вас регулярный код, тоесть вам не нужно писать одни и те жи вещи по 100 раз =)

Последний раз редактировалось Zhyk; 27.11.2008 в 11:59.
  Ответить с цитированием
6 пользователя(ей) сказали cпасибо:
Leo_ня (03.02.2010), PeTaK (27.11.2008), shagart (27.11.2008), Slaf4eg (24.11.2009), ZeLiK (08.08.2009), Zhyk (02.12.2008)
Ответ

Метки
программа, первая, masm., установка


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка AMX 0.99 с superheromod AMX 1.18d ExE Counter-Strike 2 24.04.2010 08:06
[soft] полезная программа для хостов на б.нете ZliLO Архив Warcraft 3 1 07.01.2010 15:11

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 16:44.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net