Pull to refresh
  • by relevance
  • by date
  • by rating

Состоится бесплатный мастер-класс по программированию под ZX Spectrum c использованием эмулятора

Abnormal programming *Assembler *Demoscene
Добро пожаловать на серию бесплатных семинаров от разработчиков, участвующих в фестивале ChaosConstructions.

7 декабря, сообщества Embedded, B4CKSP4CE и сообщество ChaosConstructions Demoparty откроют серию семинаров, посвященных демосцене, полностью некоммерческому и соревновательному спортивному виду искусства, позволяющему делать яркие и красивые спецэффекты, открывая новые возможности старой платформы ZX Spectrum.

Total votes 19: ↑19 and ↓0 +19
Views 3.8K
Comments 13

Трясём стариной — или как вспомнить Ассемблер, если ты его учил 20 лет назад

RUVDS.com corporate blog Abnormal programming *Assembler *System Programming *Programming microcontrollers *
Tutorial
Это — тёплая, ламповая статья об Ассемблере и разработке ПО. Здесь мы не будем пытаться писать убийцу Майкрософта или Андроида. Мы будем писать убийцу 2048. Здесь не будет докера и терраформа с кубером. Зато здесь вы сможете найти большое количество материалов по Ассемблеру, которые помогут вам вновь погрузиться в мир трёхбуквенных инструкций. Доставайте пивко, и поехали.

Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Views 541
Comments 6

Byte power!

Robotics
Слава роботам, смерть человекам.

Total votes 36: ↑28 and ↓8 +20
Views 607
Comments 24

Змея в загрузчике

Lumber room
На днях оптимизировал Image Processing для проекта, путем использования SSE инструкций. А к вечеру, порядком соскучившись по ассемблеру и имея пару банок пива, накидал простенькую змейку, а чтобы было интересней — поместил ее в бутсектор :)

Читать дальше →
Total votes 39: ↑36 and ↓3 +33
Views 822
Comments 26

ООП на ASM

Lumber room
Как говорится, и на Марсе будут яблони цвести!

register AX extends AL implements AH {
}

register EAX extends AX {

}
Total votes 79: ↑54 and ↓25 +29
Views 1.5K
Comments 53

Простая реализация схемы шагового двигателя на мк

Programming microcontrollers *
И так, данный пост нацелен на новичков в электронике а так же на новичков в программировании и освоении мк и разработке радиоэлектронных устройств.
Данная разработка представляет простейшее включение МК такого как PIC16F84A для управления шаговым двигателем.
Читать дальше →
Total votes 69: ↑61 and ↓8 +53
Views 26K
Comments 79

Модернизация телефона старого образца(телефон рулетка).

Programming microcontrollers *

Суть(цель?) проекта


— На тот момент это был проект для областных соревнований по радиоэлектронике и радиоконструированию.

Далее по списку:
— Выбрать идею — модернизация телефона.
— Создать устройство на базе микроконтроллера семейства PIC16.
— Более лучшее изучение языка ASM а так же Си.
— Создать юзабельный аппарат через который можно будет звонить.
— что нибуть еще =)
Читать дальше →
Total votes 98: ↑93 and ↓5 +88
Views 10K
Comments 52

Расширение функциональности готовых программ

Assembler *System Programming *Reverse engineering *
В мире ПО существует огромное количество программ, забытых своими разработчиками. Хорошо, когда уже есть хорошая альтернатива. А если ее нет? В программе может катастрофически не хватать каких-то мелочей, некоторые досадные ошибки могут годами доставлять массу неудобств пользователям, а на новых версиях ОС программа и вовсе может отказаться работать. Далеко не всегда имеются исходные коды, чтобы привести программу в порядок. Если программа простая — не составит труда за короткий срок создать альтернативу. Но если программа большая и сложная, что же делать в таком случае? Не всегда рационально тратить время и деньги на разработку полного аналога, ведь расширить в разумных рамках функциональность и исправить большинство ошибок можно уже в готовом исполняемом файле.
В этой статье будут продемонстрированы методики модификации исполняемых файлов на примере расширения функциональности легендарной игры Age of Empires II (стратегия реального времени).
Читать дальше →
Total votes 204: ↑203 and ↓1 +202
Views 39K
Comments 120

А по другому как то можно?

Lumber room
Не, развернутый пост писать мне лениво. Итак, если вдруг кто-то что то увидит в моих размышлениях — плюсуйте, или минусуйте, (слова то какие страшные:). Собсно о чем я: вопрос: зачем мы уже пару десятков лет объясняем на разных языках различным процессорам КАК мы хотим выполнить задачу? Причем делаем это миллионы раз, объясняя тупым процессорам на множестве языков программирования ЧТО мы хотим в итоге получить. Причем одни и те же задачи решались уже миллионы раз.

Различные фреймворки конечно же решают общие задачи достаточно просто, но в итоге приходится одни и те же простейшие задачи решать снова и снова. А тогда нафига нам вообще компьютеры, если мы все делаем сами?.. Может пора научить эти устройства, которые мы приручили, самостоятельно принимать простые решения, а не объяснять им снова и снова что мы от них хотим? Вообще это скорее крик души, я честно говоря уже устал писать программы на традиционных языках программирования, снова и снова объясняя моему любимому ПК банальные вещи: smart pointers, ссылки, константные ссылки, указатели, виртуальные функции, стек/динамическая память. С чего вдруг мне обо всем этом заботиться?

Возьмем простую задачу: распарсить XML файл и вывести все имена тэгов на экран. Варианты решения: бесконечно много. Можно использовать множество языков программирования, можно на каждом из них написать совершенно разный код. Скорость работы этих решений: стесняюсь оценить,
может различаться на 1-2-10 порядков. А задача то ведь сверх простая, чтобы достичь максимальной эффективности нужно всего то правильно написать несколько строк(наверное, десятков строк) ассемблерного кода.

Но ведь дело даже не в этом. Сколько, продолжая тот же пример, написано XML парсеров? А ведь логика там одна и та же. И та же «грамматика», очень много общего. А почему бы не сказать нашей любимой платформе, что такое XML по сути. Чтобы он знал, что такое XML, с чем его едят, с чем не едят и т.д. И получив его на входе сам бы преобразовывал его к нужному выходу, получив задачу ЧТО нужно сделать и самостоятельно решая задачу КАК делать.

ЗЫ. XML приведен для очень грубого и простого примера, просьба XML в каментах не трогать:)
ЗЫЫ. Первый пост, не судите строго, я исправлюсь, может быть:)
Total votes 27: ↑9 and ↓18 -9
Views 217
Comments 12

Puls — революция в 256 byte intro

Assembler *Demoscene
Прошедший в конце августа Chaos Constructions 2009 в Питере, к сожалению, не порадовал нас революционными релизами. Однако зарубежные братья демосценеры не дремлют!

image

Буквально на прошлой неделе на Riverwash 2009 простой чешский парень Jan Kadlec (aka Řrřola) забомбил PC 256 byte intro которое установило новый мировой порядок. Имя ему — Puls.

Итак речь идет о куске машинного кода в 256 байт для Intel x86 совместимой машины. Работает он под DOS, совершенно равнодушен к 3D возможностям вашей видеокарты и объемам установленного ОЗУ, но не откажется от быстрого CPU. Код генерирует динамическую визуальную сцену используя базовые возможности Intel архитектуры и стандартного видеорежима.
Версия под DOS «с трудом» заработает под Vista, 7 и XP, выдавая низкий fps – операционная система не дает напрямую использовать аппаратные ресурсы. Поэтому есть смысл смотреть адаптированную под Windows версию (которая занимает уже несколько килобайт). Она как бы намекает нам «насколько много ресурсов поедает ОС» (сравните размеры кода под DOS и Windows).

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

Обычно в этом месте обыватель задает вопрос: “Здорово! А как мы это можем использовать?”

Отвечаю примером для 9-го класса:
Читать дальше →
Total votes 116: ↑111 and ↓5 +106
Views 3.6K
Comments 144

Сетевые извращения на ассемблере v. 1.1

Lumber room
Мой первый пост в хабра-мире, прошу сильно не пинать ногами, а адекватную критику очень приветствую…

Все началось с курсового проекта по предмету ЯПНУ (Языки Программирования Низкого Уровня) по завершению которого нам в обязательном порядке следовало вложить все наши творческие и технические навыки в создание программы на великом и могучем Ассемблере. Творческая часть заключалась в выборе темы. Не долго думая я решил взять что нибудь с клиент-серверными технологиями и вот что из этого получилось
Читать дальше →
Total votes 34: ↑11 and ↓23 -12
Views 677
Comments 7

Pyastra — транслятор кода на языке Python в ассемблер для архитектуры PIC

Lumber room
Pyastra — это транслятор кода на языке Python в ассемблер. Он принимает исходный файл, написанный на Python и, если код не содержит ошибок, то генерирует ассемблерный файл, который вы можете скомпилировать в HEX-файл, используя ваш любимый PIC ассемблер (gpasm, mpasm или другие, совместимые с ними).
Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 1.3K
Comments 10

Коварный и ужасный sndrec32.exe

Assembler *System Programming *Reverse engineering *
Sound RecorderВ этом топике вы найдете немного ностальгии, каплю гнева и килограмм реверс-инжиниринга. Посвящается тем, кто знаком с программой «Звукозапись» не понаслышке :)

Когда небо было голубее, Солнце светило ярче, а Интернет был таким недоступным… Короче, в далеком детстве мне почему-то полюбилась стандартная программа «Звукозапись» из Windows 98. Не глядя на минимальную функциональность, я даже умудрялся делать в ней простейшие «ремиксы» ей же записанных мелодий из игр.

Шли годы. Железо становилось мощнее, а ОС функциональнее. Но «Звукозапись» не менялась. Даже в Windows XP она оставалась такой же, как и тогда. Пришло время обновить железо. 3 гигабайта оперативной памяти — раньше и мечтать о таком не приходилось. Этого уж точно должно хватить всем! Так и было, пока дело не дошло до той самой «Звукозаписи». После попытки записать небольшой звук программа невозмутимо возразила, что ей недостаточно оперативной памяти.
Читать дальше →
Total votes 183: ↑177 and ↓6 +171
Views 20K
Comments 98

Java-ассемблер, мета-программирование и JPA

Java *
В этом топике хочу поделиться первым опытом по написанию системы генерации кода «на лету». В коде реализуются некоторые идеи, описанные в предыдущем топике, а сам код используется в одной старой, но работающей системе управления сайтами.

Краткая постановка задачи:
  • Есть набор виртуальных «классов» в понятии бизнес-пользователя. Например, «сайт», «папка», «новость», и т.д. Каждый из таких классов имеет набор полей (аттрибутов).
  • Пока что у нас нет наследования классов, а поля ограничены примитивными String/Integer/Long/Enum/Boolean, даже без multiple, но с возможными заданными значениями по умолчанию
  • Каждый класс записывается в отдельную таблицу, например, objects_sites, objects_news, objects_folder, etc. Таблица всегда содержит ID объекта, а также колонки для полей.
  • Нужно сделать так, чтобы загрузка этих объектов работала через JPA (Hibernate), с использованием необходимого кэширования/транзакций/Lazy-loading'а и других вкусностей, которые нам даёт JPA.

Для выполнения данной задачи использовалось:
  • В качестве баз данных — MySQL 5.0, InnoDB, три схемы базы данных (разные типы могут лежать в разных схемах, чтобы отделить системные типы от пользовательских)
  • Sun JDK 6.0
  • Tomcat 6 + JOTM 2.1.9 + Hibernate 3.5.0-Final (patched)
  • Для создания классов использовалась связка CGLib 2.2 (входящая в Hibernate) и ASM 3.2 (в Hibernate входит 3.1)

Читать дальше →
Total votes 42: ↑33 and ↓9 +24
Views 8.8K
Comments 24

GMABooster? Разгоняем?

Computer hardware


Решился опубликовать результаты моего исследования программы GMABooster, которая была представлена хабражителям буквально вчера. Сразу скажу, анализ не был бы проведен столь быстро, если бы не совершенно незнакомый хабраюзер Werat, который удаленно тестировал из под админа мой код на своем Acer Aspire One a150 (отважился же человек).

Своим топиком мне хотелось бы подчеркнуть важность открытых продуктов, свободы обмена информации между людьми [а еще напомнить всем жалующимся и плачущим, что Хабр — торт!].

Disclaimer: Анализ приведен исключительно в обучающих и мирных целях, меньше всего мне хотелось бы снизить размер пожертвований в сторону автора программы. В любом случае им проведена работа, которая заслуживает уважения. Также, я вынужден рассмотреть «альтернативное» решение для некоторых платформ, в силу того, что GMABooster не удобен по ряду критериев, особенно для пользователей Linux и Mac.

Расследование внутри
Total votes 112: ↑110 and ↓2 +108
Views 14K
Comments 24

Иследование несложных crackme's (часть 3)

Assembler *
Здравствуйте, Хабралюди.
Представляю вам третью часть из моего цикла статей о исследовании крякмисов. В этом топике мы поговорим с вами о ручной распаковке некоторых пакеров и о преодолении не сложных антиотладочных методов.
Читать дальше →
Total votes 45: ↑36 and ↓9 +27
Views 10K
Comments 49

Уязвимость эмулятора в антивирусе Касперского

Information Security *
Sandbox
На данный момент в мире создаётся всё большее количество вирусов, за количеством которых невозможно успеть. Поэтому современные технологии «облачных сетей» и эвристических анализаторов кода призваны обеспечить защиту от совершенно новых угроз до того, как аналитики добавят образцы в антивирусные базы.

Не для кого не секрет, что в каждой системе всегда найдется пара дырок, которые рано или поздно выплывут наружу. Иногда это связано с ошибками программистов, иногда — из-за развития технологий вирмейкерства. В данной статье я покажу Вам один из способов обхода эмулятора в последних версиях антивируса Касперского.
Читать дальше →
Total votes 45: ↑44 and ↓1 +43
Views 4K
Comments 27

Чуть больше о загрузке самодельных ОС — пишем bootloader

System Programming *
Не так давно решил чуть получше изучить архитектуру IA-32. А что лучше всего для запоминания? Конечно же практика. Но программируя в ОС мы врядли получим самый низкий уровень доступ к железу без помех. Поэтому для этих целей будем писать собственное подобие операционной системы. То есть проще говоря будем выполнять свой код, сразу после загрузки BIOS'а.
Первой проблемой с которой столкнется желающий программировать на низком уровне — как же загрузить свой код?
Читать дальше →
Total votes 129: ↑119 and ↓10 +109
Views 13K
Comments 49

Обратная польская запись на языке ассемблера с синтаксисом AT&T

Abnormal programming *
Sandbox
Данная программа изначально была написана как небольшая лабораторная работа по курсу машинно-ориентированного программирования программирования, но в последствии появилась мысль представить её сообществу. Именно потому что алгоритм реализован не на языке ассемблера с синтаксисом Intel, а на языке ассемблера с синтаксисом AT&T.
Читать дальше →
Total votes 12: ↑7 and ↓5 +2
Views 5.2K
Comments 5

Ассемблер для Windows используя Visual Studio

Website development *
Sandbox
Многие из нас изучали ассемблер в университете, но почти всегда это ограничивалось простыми алгоритмами под DOS. При разработке программ для Windows может возникнуть необходимость написать часть кода на ассемблер, в этой статье я хочу рассказать вам, как использовать ассемблер в ваших программах под Visual Studio 2005.

image

Создание проекта


В статье мы рассмотрим как вызывать ассемблер из С++ кода и обратно, передавать данные, а также использовать отладчик встроенный в Visual Studio 2005 для отладки кода на ассемблер.
Читать дальше →
Total votes 80: ↑63 and ↓17 +46
Views 122K
Comments 31