DevProg: Блог для программистов

Секреты программирования. Примеры разработки. Обзоры программёрского софта, блогов и форумов и просто полезные советы!

Posts Tagged ‘Новичку’

Ассемблер для начинающих. Урок 1 — Вызов API функций.

Posted by devprog на 17 октября, 2008

Привет. Итак приступим к делу, для этого нам нужно скачать какой-нибудь компилятор ассемблера, качайте или FASM или MASM, так как отличия в синтаксисе минимальны. Выбрать компилятор по душе можете вот сдесь. Лучше конечно скачать FASM, так как этот компилятор нравиться мне больше остальных и обьяснять я буду именно на нём.

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

Создадим простой текстовый файлик и назовём его «first.asm» и начинаем программировать:

include ‘win32ax.inc’
.code
start:
invoke  ExitProcess,0       ; вызываем функцию ExitProcess c параметром 0 (нуль)
.end start

Что делает этот код? Да ничего… Если мы его скомпилируем то получим полноценную программу которая просто завершает сама себя. Компилируем:

fasm.exe first.asm

Итак, вы попытались скомпилировать… Но не получилось, а всё потому что компилятор не знает где находиться файл-инклудник — «win32ax.inc». Необходимо ему явно указать этот файл для этого меняем код программы, например вот так:

include ‘D:\FASM\include\win32ax.inc’
.code
start:
invoke  ExitProcess,0       ; вызываем функцию ExitProcess c параметром 0 (нуль)
.end start

Теперь всё скомпилируеться отлично, но чтобы это не писать каждый раз, можно задействовать переменные среды, присвоив например переменной %inc% путь «D:\FASM\include». Но этим мы займемся в следующем туториале, так как в этом я собираюсь показать как вызываеться функция Windows API (какой и являеться ExitProcess).

Кстати invoke — это макрос, который обьявлен в инклуднике win32ax.inc. Он позволяет нам вызывать функции привычным образом как например в С++ или Delphi. Без него мы будем писать в следующих туториалах. Короче усвойте что invoke это вызов функций (но только на первый туториал, ну или на все если в будущем вы собираетесь программировать именно с его помощью).

Теперь давайте добавим в нашу программу ещё одну функцию — MessageBox:

include ‘D:\FASM\include\win32ax.inc’
.code
start:
invoke  MessageBox,HWND_DESKTOP,»Hallo Xaker.Name»,»Caption»,MB_ICONASTERISK
invoke  ExitProcess,0       ; вызываем функцию ExitProcess c параметром 0 (нуль)
.end start

Первый параметр функции MessageBox являеться дескриптор окна-родителя нашего окошка, в качестве него мы передаём константу HWND_DESKTOP — дескриптор Рабочего Стола.

Второй параметр — адрес на текст самого окошка. Возникает вопрос — почему же мы не пишем: invoke MessageBox,HWND_DESKTOP,offset Message….? Да потому что, макрос invoke достаточно универсален, чтобы принимать в параметре просто текст… Подробнее обьясню в следующих уроках.

Третий параметр — заголовок окна, то есть его адрес.
Ну а четвёртый параметр — стиль окна, у нас это MB_ICONASTERISK то есть окошко с восклицанием.

Кстати дополнительную информацию об API — можно получить либо на MSDN либо из любой справки Windows SDK, которая поставляеться с любым продуктом Borland. Вот и написали и разобрали вызов функций и написали полноценное приложение. Всё, до следующего туториала, всего хорошего…

———-
Интересное на блогах:
Сокращаем JavaScript код
Сервисы для программистов

———-
Полезная заметка? Есть способ получать новые посты не заходя на этот сайт! Как? Да просто подпишись на RSS-Фид !

Posted in Ассемблер, Новичку | Отмечено: , , , | 24 комментария »

Как выбрать себе Ассемблер? Некоторые рекомендации новичку!

Posted by devprog на 15 октября, 2008

Итак, вы решили-таки изучить язык ассемблера и научиться разговаривать с компьютером на его языке? Но вы на распутьи, вы не знаете какому ассемблеру посвятить себя, свои силы, ну а главное время? Ведь их так много и каждый пытается тянуть одеяло на себя. Вы читали форумы, но всё форумное комьюнити почему то разбивается на несколько групп и защищают свой любимый компилятор? Так что же мне делать? — Спросит новичок. А вот возьмите и просто прочитайте данный материал, обещаю будет очень интересно, и в конце концов вы выделите для себя тот единственный и прекрассный ассемблер. Для вас он будет самым удобным и лучшим.

В связи с тем, что под 16 битные операционные системы никто уже не программирует, мы остановим свой выбор на 3х самых ярых конкурентах, под ОС Windows. Это как вы уже поняли TASM32, MASM32, и молодой но прыткий FASM. Итак, мы начинаем.

TASM32 (TASM 5+) — Бородатый дедушка от Borland

Дедушка то бородатый, но вот порох в пороховнице ещё есть. Это наследник от TASM, который во времена MS DOS был очень крутым ассемблером и конечно очень популярным. Но время тех операционок прошло, и TASM преобрёл второе дыхание благодаря человеку по имени !tE (ник-нейм) и благодаря ему превратился в пакет (именно пакет) программирования под Windows. В составе пакета идёт сам ассемблер, документация, примеры написания программ и заголовочные файлы. К плюсу этого ассемблера наверное можно отнести то, что он полностью совместим с ассемблером MASM, но и не стоит забывать про то, что он имеет ещё и свой режим — IDEAL, который использует свой синтаксис. Как вы наверное уже поняли, поддержкой TASM больше никто не занимается, кроме энтузиастов, коим является !tE — за что ему отдельное человеческое спасибо.

Выводы:
Поддержка: Частичная
Распространённость: Низкая
Размер пакета: 2,14 MB
Общая оценка: 3
Ссылка: Turbo Assembler 5+ v5.3

MASM32 от Стива Хатчессона — Добры папа-Добрый сын

Именно великий человек Стив, является отцом этого пакета для программирования под Windows. Ассемблер в нём используется от Microsoft, но Стив дополнил его библиотеками, заголовочными файлами, документацией и даже собственной IDE (средой разработки) не говоря уже о всяких других полезных утилит, запрограммированных кстати тоже Стивом. Кстати Хатч упорно и стойко поддерживает свой проект выпуская всё новые и новые версии своего пакета. На MASM32 программируют колоссальное колличество разработчиков, образующие целые комьюнити. Именно пакет MASM32 от Стива дал выход в свет огромному количеству талантливых программистов на ассемблере. Долгой ему жизни и успехов в процветании.

Выводы:
Поддержка: Хорошая
Распространённость: Высокая
Размер пакета: 3,4 MB
Общая оценка: 5
Ссылка: Hutch’s MASM32

FASM (Flat Assembler) — Пархает как бабочка, но совсем не жалит.

Как обычно, самое сладкое на последок. Вот он, кроссплатформенный, с открытым исходным кодом, с красивым синтаксисом, бесплантый и очень удобный (в плане компиляции) ассемблер, созданный человеком по имени Томаш Гриштар — польским и очень талантливым программистом! На FASM написаны целые операционные системы, такие как например MenuetOS или KolibriOS. Ассемблер с неимоверно развитым макроязыком. На сегодняшний день поддерживает все инструкции 32х и 64х разрядных процессоров. Версии ассемблера есть для DOS, UNIX, LINUX и конечно же Windows. Развивается очень стремительно как и набирает вокруг себя всё больше и больше приверженцев именно этого ассемблера. Ещё очень нравится то, что FASM не нужен компоновщик, он прекрасно обходится и без него! В то время как 2 предыдущих ассемблера этого недостатка не лишены.

Выводы:
Поддержка: Отличная
Распространённость: Высокая
Размер пакета: 820 КB (с учётом того что внутри ещё и целая книга ;) )
Общая оценка: 5+
Ссылка: Flat Assembler

Вот так, а теперь вам не составит особого труда выбрать ассемблер по себе. Но я то знаю, что вы выбирете FASM ;) Есть недочёты или неточности? Пишите — обсудим :)

———-
Интересное на блогах:
PHP mail под Windows. Отправка почты из PHP скриптов
Как создать облако тегов для своего сайта на PHP

———-
Полезная заметка? Есть способ получать новые посты не заходя на этот сайт! Как? Да просто подпишись на RSS-Фид !

Posted in Ассемблер, Новичку | Отмечено: , , , , | 10 комментариев »

18 Уроков по PHP для начинающих

Posted by devprog на 14 октября, 2008

Совсем недавно я начал изучать язык программирования PHP. Искал в интернете туториалы по этому языку для начинающих, за книгами из принципа не ехал, так как не знал, воодушевить меня язык или нет. Понравится, или я заброшу его далеко и надолго? Так вот и наткнулся на нормальные (по моему) туторки по PHP. Лично мне очень понравился стиль написания. Как рассказывают и обьясняют. Профи, а что скажите вы? 

 

Содержание: 

Введение в курс.

 


Общие слова об уроках, а также подготовка своего PC для изучения PHP. 

Урок 1. Начала…
Познаем азы PHP.

Урок 2. Формы всего сущего.
Рассматриваем элементы форм, их предназначение и использование PHP.

Урок 3. Выражаемся по-ПиЭйчПовски
Изучаем управляющие конструкции PHP.

Урок 4. Функционируем?
Знакомимся с функциями в PHP, проблемами их использования.

Урок 5. Наша первая считалка.
От теории переходим к практике. На примере создания калькулятора на языке PHP рассмотрим все пройденное ранее.

Урок 6. Файлы, директории и PHP.
Учимся работать с файлами и директориями, рассмотрим распространенные функции PHP операций с этими объектами.

Урок 7. Добро пожаловать, или пишем Гостевую книгу.
Сегодня мы будем решать реальную задачу, с которой может столкнутся практический любой вебмастер, — написание собственной гостевой книги.

Урок 8. Снова здрасьте, или дописываем Гостевую книгу.
Продолжаем писать гостевую книгу. Обогатим ее интересными и полезными функциями.

Урок 9. Сессии и с чем их «едят».
Знакомимся с механизмом сессий в PHP и функциями работы с ними.

Урок 10. PHP и HTTP: headers.
Рассматриваем взаимодействие протокола HTTP и языка PHP на примере оперирования HTTP заголовками.

Урок 11. PHP и HTTP: cookies.
Продолжаем наш экскурс в изучение взаимодействия PHP и HTTP на уровне механизма cookies.

Урок 12. Работа с удаленными документами.
Читаем файлы на других сайтах и «вытягиваем» из них интересующую информацию.

Урок 13. Принципы ООП и классы.
Знакомимся с принципами объектно-ориентированного программирования и их реализацией в PHP.

Урок 14. Регулярные заявки.
Урок создан по многочисленным просьбам читателей и посвящен регулярным выражениям и функциям работы с ними.

Урок 15. Основы MySQL.
Приобретаем базовые знания по MySQL.

Урок 16. MySQL и PHP.
Учимя работать с MySQL посредством PHP.

Урок 17. Шаблоны.
Постигаем принцип разделения оформления и содержания посредством использвоания шаблонов.

Урок 18. Деревья.
Урок посвящен построению так называемых деревьев данных.

Всё это можно найти в этой электронной книже: Скачать PHP уроки

———-
Интересное на блогах:
Правильное оформление кода в PHP
О том, почему ты не программист, и как тебе им стать.

———-
Полезная заметка? Есть способ получать новые посты не заходя на этот сайт! Как? Да просто подпишись на RSS-Фид !

Posted in Новичку, PHP | Отмечено: , , | 24 комментария »

Gentee — наш, Русский ответ С++

Posted by devprog на 14 октября, 2008

Gentee — Бесплатный язык программирования с открытыми исходными текстами. Который разработали 2 русских программиста. Два талантливых брата. Внешне имеет сходства с языком C++, даже есть намёки на ООП. Кстати, эта разработка интересна тем, что можно исполнять gentee код прямо в своих проектах, то есть можно использовать его например в качестве скриптового языка в своих проектах, что безусловно очень полезно.

Выдержка с официального сайта Gentee:

Зачем нужен Gentee?

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

Язык программирования Gentee можно отнести к разряду процедурных языков с некоторыми возможностями объектно-ориентированного программирования. Он не имеет сложных конструкций и прост в использовании, но в тоже время является мощным инструментом для решения самых различных задач. Синтаксис языка основан на синтаксисе языка программирования С и имеет много общего с другими С-подобными языками C++, Java, C#. У Gentee есть те же самые числовые типы int, uint, byte, ubyte, long, double, float, … и такие же операции над ними +, ==, <, >, -, /, +=, ++, —, /=,… как в других подобных языках программирования. При написании программ вы можете использовать все основные конструкции, которые встречаются в других языках. Например, такие как: while, if, for, with, foreach, switch, include .

Скажем несколько слов о работе компилятора. Исходные тексты компилятора на языке программирования C находятся в открытом доступе, так как Gentee является проектом с открытыми исходными текстами. Скорость компиляции очень высокая. В результате компиляции программы создается байт-код, который можно сохранить в файл или выполнить сразу. Сохраненный байт-код можно запускать без повторной компиляции, а можно использовать в качестве библиотечного модуля в других программах. Следует заметить, что имеется набор готовых библиотек, который постоянно пополняется и помогает создавать программы самой различной сложности. Кроме этого, возможно создание исполняемых ( exe ) файлов.

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

www.gentee.com

Posted in Программирование | Отмечено: , , , | 9 комментариев »

Как настроить RadAsm под MASM32

Posted by devprog на 14 октября, 2008

Привет. Если вы уж выбрали эту замечательную среду разработки например для программирования например на С++ или С, то обязательно прочтите данный материал. Дело в том, что RadAsm можно настроить не только под Си или Си++, так же это может быть PHP, Basic, или даже HTML, не говоря уже про все ассемблеры. Давайте я покажу вам на примере, как настроить RadAsm для программирования на ассемблере MASM32. Со всеми остальными всё делаеться аналогично. 

Шаг 1: Качаем RadAsm + пакеты
Дело это не хитрое. Нам необходимо пройти по этой ссылке: скачать саму среду. Далее нам нужен пакет поддержки языков ассемблеров. Можно ещё пройти по этой ссылке и скачать пакеты поддержки разных языков, если вы говорите например по португальски.

Шаг 2: Качаем компилятор
Кто-то когда то сказал такие слова: Компилятор — всему голова. И я с этим полностью согласен. Так что качаем его вот по этой ссылке для Windows 2000 и XP или вот по этой для Windows 95/98/ME. Скачали — установим.

Шаг 3: Установка компилятора
Установка проста как 5 копеек. При установке выберите диск C: . Делайте пока так, потом переставите на другой диск как вам удобно, но желатель ставить в корень диска. То есть если вы поставите его например в C:\MyCompiler\SuperMASM32\MASM32 — ничего плохого не произойдет но и ничего хорошего тоже не выйдет. Итак поствили. Как только перед вами всплывает консоль (чёрненькая такая ) жмите любую клавишу — этим мы даём добро на сборку библиотек. Потом будет предложено нажать любую клавишу — жмём! Потом ещё раз. И ещё  Всё, пакет программирования MASM32 в который входит и 32 битный компилятор MASM установлен в системе.

Шаг 4: Пропишем пути
Для этого: правый клик на Мой компьютер -> Свойства -> вкладка Дополнительно -> Переменные среды. Добавляем к переменной PATH такое значение:

;C:\MASM32\BIN

Именно с точкой с запятой в начале — этим мы отделяем значения от друг друга.

Шаг 5: Установка RadAsm
Распакуйте архив RadAsm.zip в любую удобную для вас папку. Допустим это будет C:\RadAsm\ . В эту же папку распаковываем архив Assembly.zip, а именно всё содержимое директории Assembly. То есть файлы masm.ini, fasm.ini, nasm.ini и т.д. включая все директории должны попасть в папку с установленным RadAsm, в нашем случаи — C:\RadAsm\ .

Шаг 6: Добавим новый язык
Запускаем RadAsm, заходим в Option -> Programming languages -> Внизу окошка нажимаем на троеточие (выбор) -> выбираем masm.ini -> нажимаем Add -> OK. Всё, настройка RadAsm для MASM32 завершена. Осталось проверить всё ли работает.

Шаг 7: Проверка
Делаем : File -> New Project -> Выбираем из выподающего списка MASM -> выбираем Win32 App -> Вводим название проекта и его описание -> DialogApp.tpl -> Next -> Next -> Finish. Теперь нажмём Ctrl+F5 (компиляция с запуском) и видим окошечко. Значит программа скомпилировалась и всё настроенно и поставленно верно. Если окошка нет — значит вы что-то пропустили. Вот и всё — надеюсь всё понятно. Если нет спрашивайте и комментируйте.

Posted in Ассемблер | Отмечено: , , , , | 21 комментарий »