| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > Пример программы на FASM для Windows здесь ! |
| Автор: sgi1981 4.4.2006, 08:05 | ||
| Кому интересно, вот пример простой программы, составленной на ассемблере FASM для платформы WINDOWS. Программа после своего запуска создает окно и выводит надпись в этом окне. Для полной работы программы нужны ещё три звуковых файла "*.wav", которые я к сожалению поместить в этом сообщении не могу. Я постараюсь выложить их в нескольких сообщениях. Ну и без них прога будет работать, только вместо воспроизведения будет BEEP. Внимание. Данная программа составлена на плоском ассемблере FASM. Скачать его можно вот от сюда http://fresh.flatassembler.net/ Я поместил это сообщение чтобы разнообразить взгляды на ассемблер. А то в большинстве случаев... по DOS да под DOS...
|
| Автор: sgi1981 4.4.2006, 08:17 |
| Ребята, когда скачаете FASM, если кто ещё не скачивал, то все файлы и каталоги из папки Include, что находится в каталоге с файлом Fasmw.exe, скопируете в каталог со своим исходным файлом "*.asm", а то компилятор не будет знать где искать подключаемые файлы. Сам файл Fasmw.exe - это простая IDE среда для написания, редактирования и компиляции программы под WINDOWS. Это не такой компилятор, который запускается из командной строки. Это удобная во всяком случае среда программирования для ассемблера. Когда его запустите, перед вами откроется окно, где вы можете спокойно набирать текст на ассемблере FASM. Компиляция - "Ctrl - F9". Запуск - "F9". При ошибке компиляции IDE выделит ошибочную строку. После компиляции текст программы автоматически сохраняется. Единственное, на что обращаем внимание - это синтаксис FASM. Ну посмотрите мою програмку и все поймете. А вот и второй звуковой файл - воспроизводится при перерисовке содержимого окна WINDOWS. |
| Автор: sgi1981 4.4.2006, 08:20 |
| Третий файл. Все вопросы по FASM и по программированию для платформы WINDOWS - в эту тему. |
| Автор: Urff 4.4.2006, 19:41 |
| Привет, я тоже учусь программировать на fasme.Правда на форуме оффсайта, поговорив с разработчиком FreshGui, скачал кроме нее и просто fasmw1.65.17.zip под винду, там все попросче...Там есть описание, как настроить fasmw.exe, чтоб не копировать файлы из INCLUDE в папку с примером..... В pdf файле в этом архиве есть описание языка fasm1.65, но хотелось бы найти сие описание на русском языке..... |
| Автор: sgi1981 4.4.2006, 22:56 |
| Скачал новую среду ассемблера http://fresh.flatassembler.net/files/FreshAlpha114.exe Редактор лучше. Но. Непонимает русских символов раз. Немогу запустить пошаговую отладку два. Для пошаговой отладки есть некие отладчики DEBUGGER-ы, где можно скачать дебюггер под XP ? И что-то надо решать с русскими символами. Добавлено @ 23:04 И ещё непонимает почему то собственной настройки Указана папка с включаемыми файлами, но все равно выдает ошибку, что файл не найден. И ещё курсор невидим до тех пор, пока не выдаст ошибку. |
| Автор: Urff 4.4.2006, 23:51 |
| Привет, ты на оффоруме не в тот подфорум запостил,надо сюда постить про Fresh http://board.flatassembler.net/forum.php?f=15 ник разработчика - decard Деббагеры можешь под XP найти на www.wasm.ru в разделе инструменты...или я тут могу подвесить пару небольших.... p.s. откуда взял пример, из первого поста? |
| Автор: sgi1981 5.4.2006, 01:24 | ||||||
Я сразу же и туда запостил. Я запостил сразу на два форума : в этот и в форум по Fresh. Чтобы больше ответов было.
Хорошо, посмотрю что там...
Из книги Виктора Юрова Assembler Учебник. Только я переделал ту програмку под синтаксис FASM. Я долго не мог раздуплиться, каким образом в стек закачивать адреса строк и структур, а оказывается что идентификатор без прямоугольных скобок - это и есть адрес переменной идентификатор в прямоугольных скобках - это значение переменной. Ведь описанные переменные - это ж метки на области памяти в сегменте данных. А ещё с самого начала я вызывал API функции не так как можно в FASM с помощью invoke, а с помощью call. Так не знал тогда что в таком случае нужно идентификатор функции тоже в прямоугольных скобках писать, и получалось, что адреса функций были не правильными, а ссылались на область памяти в секции импорта "*.exe" - файла. Естественно, программа запускалась с ошибкой. Я скачал более совершенную версию ФЛАШ http://fresh.flatassembler.net/files/FreshAlpha114.exe Только там в комментариях не отображаются нормально русские символы. Надо что-то решать по ним. |
| Автор: Exekutor 5.4.2006, 08:51 |
| Тоже недавно купил книгу Юрова. Потрясающе. Ассемблер - сила. Программирование под виндовс на ассемблере, конечно геморройно, но те плюсы которые оно дает намного превосходят минусы. Для примера. Простое, ничего не делающее окошко, написанное на ассемблере ввесит 7 кб. Такое-же окошко созданное и скомпилированное в Borland C++ 6 - 75 кб. P.S. никто не знает, где можно скачать редактор ресурсов в виде отдельной проги? |
| Автор: sgi1981 5.4.2006, 10:39 | ||||
А интересно, какого года выпуска ты купил книгу, потому что у меня книга от 2001 года. У тебя новее ?
Да ты наверно недотянул "малость". Вообще, если в настройках компиляции проекта в среде Borland C++ Builder 6.0 настроить режим компиляции без использования библиотек времени исполнения, то минимум 440 КБ выходит проект. Вот проверь : 1) Зайди в пункт меню Project/Options 2) сними галочку на закладке "Packages" с опции "Build with runtime packages" 3) сними галочку на закладке "Linker" с опции "Use dynamic RTL" 4) на закладке "Compiler" нажми кнопку Release, чтобы компилятор не помещал отладочную информацию. Теперь перекомпилируй и проверь, сколько весит "*.exe". Но если так не делать, то твоя программа написанная на Бюилдере, не будет выполняться на машинах, где нет Бюилдера и прийдется дополнительно устанавливать те связываемые библиотеки. |
| Автор: Exekutor 5.4.2006, 14:35 |
| sgi1981, Я знаю как отключать эти библиотеки. У меня с убраной галочкой окошко получилось размером ровно 76 кб. А. Вот теперь вижу. Packages я не отключал. Что, без них тоже не запустится? Насчет книжки - не знаю, сейчас на работе. Вечером приду домой - посмотрю. А как насчет редактора ресурсов? |
| Автор: Chingachguk 5.4.2006, 15:02 | ||
http://www.wasm.ru/toollist.php?list=2 |
| Автор: Exekutor 5.4.2006, 15:08 |
| Chingachguk, спасибо! |
| Автор: sgi1981 5.4.2006, 15:26 | ||
НА ЧУЖОЙ МАШИНЕ НЕ ЗАПУСТИТСЯ. |
| Автор: Urff 5.4.2006, 19:06 |
| Хм, у меня учебник Юрова за 1998 год в электронном виде, хотелось бы найти поновее,тоже в электронном..... По части вопросов про фукции и переменные (не догадываетесь, зачем я так везде спрашиваю описание языка fasm1.65 на русском языке?) В первую очередь, считаю надо прочесть документацию по языку, я только начинаю программировать и fasm -мой первый язык программирования, посему, счас потихоньку перевожу на русский документацию.... |
| Автор: sgi1981 6.4.2006, 04:18 | ||
А описание целочисленных команд MMX есть в том учебнике ? А описание вещественных команд XMM есть в том учебнике ? У меня это есть. |
| Автор: Exekutor 6.4.2006, 06:18 |
| А у меня учебник Юрова за 2004 год. MMX в нем тоже есть. С вещественными командами. |
| Автор: sgi1981 6.4.2006, 19:36 | ||
Учебник за 2004 год в электронном виде или в натуральном ? Если вышла в свет книга, можно сходить в магазины посмотреть. |
| Автор: Exekutor 7.4.2006, 09:07 |
| книга в натуральном (бумажном) виде. К ней прилагается тоже книга Юрова - "Ассемблер. Практика". Тут рассматривается многие практические вопросы. Я туда правда только заглянул пока. Довольно интересно, но сперва нужно подучить теорию. |
| Автор: Urff 7.4.2006, 18:17 |
| Exekutor может ты книжки в электронный вариант сделаешь и закинешь откуда можно будет скачать?!Доброе дело сделаешь. Почасти описания команд ММХ в fasme1.65 я есче до туда не дошел... Кста, может кто знает где взять описание архитектуры проца Intel Pentium M? Очень надо!!! |
| Автор: DiMasKiss 10.4.2006, 09:58 |
| Здравствуйте. Подскажите, пожалуйста, начинающему. Что необходимо для использования fasm в проекте VS.NET на С# или С++. Для чего нужен: IDA 4.x; IDE. Заранее благодарен. |
| Автор: kazan417 5.6.2011, 18:10 |
| Спасибо большое sqi1981, ты мне этим примером с курсачом помог. Зарегился только чтоб тебе спасибо сказать, но думаю теперь останусь на этм форуме надолго |