Рубрика «assembly»
Кто реально угрожает C++ (нет, Rust, не ты)
2024-04-28 в 10:53, admin, рубрики: assembly, C, c++, Web Assembly, ПроцессорыПривет! Меня зовут Александр Каленюк, и я крепко подсел на C++. Пишу на C++ 18 лет кряду, и все эти годы отчаянно пытаюсь избавиться от этой разрушительной зависимости.
Всё началось в конце 2005 года, когда мне довелось писать движок для симуляции 3D-пространства. В этом движке было буквально всё, чем язык C++ мог похвастаться в 2005 году. Трёхзвёздочные указатели, восьмиуровневые зависимости, C-подобные макросы повсюду. Кое-где – вкрапления ассемблера. Итераторы в стиле Степанова и мета-код в стиле Александреску. В общем, всё. Кроме ответа на самый важный вопрос: зачем?
Атомики в Go: особенности внутренней реализации
2023-06-30 в 15:10, admin, рубрики: assembly, atomic, atomics, backend, concurrency, Go, golang, MutexАтомики в Go - это один из методов синхронизации горутин. Они находятся в пакете стандартной библиотеки sync/atomic. Некоторые статьи сравнивают atomics с mutex, так как это примитивы синхронизации низкого уровня. Они предоставляют бенчмарки и сравнения по скорости, например Go: How to Reduce Lock Contention with the Atomic Package.
О разнице между лямбдами и обычными функциями и о имплементации лямбд в некторых языках программирования
2023-04-29 в 13:52, admin, рубрики: assembly, bytecode, c++, java, python, python3Цель настоящей статьи - изучить лямбда функции: чем они отличаются от обычных функций и изучить, как они реализованы в С++, Python 3 и Java.
На протяжении этой статьи я буду использовать godbolt.org, чтобы компилировать код и изучать машинный код или байт код. Я думаю, что при чтении статьи может быть удобнее смотреть не на приведённый машинный код в статье, а на этом сайте.
C++
Имплементация маппера MMC1 ассемблер 6502 nes-famicom-dendy
2023-03-10 в 21:35, admin, рубрики: 6502, assembly, dendy, Famicom, mmc1, NesИгры не использующие мапперы в NES ограничены, 16 кб PRG ROM (хранилище программного кода) и 8 кб CHR ROM (хранилище графики). С развитием разработки игр на NES, встал вопрос, а как увеличить данные ограничения и на помощь пришли микросхемы мапперы. Что же такое мапперы мы и разберем сегодня и как их использовать в своем коде.
Что такое мапперы?
Трясём стариной — или как вспомнить Ассемблер, если ты его учил 20 лет назад
2021-09-23 в 13:00, admin, рубрики: assembly, ruvds_статьи, ассемблер (x86), ассемблер для начинающих, Блог компании RUVDS.com, ламповый код, ненормальное программирование, программирование микроконтроллеров, системное программирование
Внутренности Go: оборачиваем переменные цикла в замыкании
2019-09-26 в 10:01, admin, рубрики: assembly, AST, compilers, Go, programming languages, Блог компании Badoo, высокая производительность, замыкания, Программирование, указатели
Сегодня я решил перевести для вас небольшую статью о внутренностях реализации так называемых замыканий или closures. В дополнение вы узнаете о том, как Go пытается автоматически определить, нужно ли использовать указатель/ссылку или значение в разных случаях. Понимание этих вещей позволит избежать ошибок. Да и просто все эти внутренности чертовски интересны, как мне кажется!
А еще я хотел бы пригласить вас на Golang Conf 2019, которая пройдет 7 октября в Москве. Я член программного комитета конференции, и мы с коллегами выбрали много не менее хардкорных и очень, очень интересных докладов. То, что я люблю!
Под катом передаю слово автору.
Встраиваемые функции в Go
2019-09-16 в 21:16, admin, рубрики: assembly, Go, golang, ida, дизассемблирование, низкоуровневое программирование
Go позволяет писать на ассемблере. Но авторы языка написали такую стандартную библиотеку, что бы этого делать не пришлось. Есть способы писать переносимый и быстрый код одновремено. Как? Добро пожаловат под cut.
Читать полностью »
Индексаторы в C# под капотом: индексируем лучше Доу-Джонса
2019-05-13 в 7:01, admin, рубрики: .net, assembly, benchmark, C#, высокая производительность, индексатор, производительностьДоброго времени суток. В данной статье я предлагаю ознакомиться с индексаторами в различных типах. Посмотрим код языка ассемблера для данных индексаторов и характеристики каждой инструкций по ее скорости. Также я предложу несколько очевидных выводов. Но что именно использовать в конкретно вашей ситуации решать вам — стоит ли жертвовать удобством ради скорости или наоборот.

Адаптация программ для ZX Spectrum к TR-DOS современными средствами. Часть 1
2019-05-11 в 1:35, admin, рубрики: assembly, retrocomputers, Z80, zx spectrum, защита информации, Программирование, реверс-инжиниринг, старое железоВ отличие от современных компьютеров, на спектрумах понятия файловой системы не было как такового. Это значит, что загрузка с каждого типа носителя требовала отдельной реализации и в большинстве случаев программу нельзя было просто так скопировать с кассеты на дискету. В случаях, когда загрузчик программы был написан на бейсике, его можно было адаптировать к TR-DOS довольно простой доработкой. Однако ситуация осложнялась тем, что во многих играх (как фирменных так и взломанных) загрузчики были написаны в машинных кодах и иногда содержали защиту от копирования.

Несмотря на наличие «волшебной кнопки», которая просто делала полный дамп памяти компьютера и позволяла хоть как-то сохранить программу на дискету, среди специалистов считалось хорошим тоном создавать дисковые версии игр с сохранением оригинальной загрузочной картинки и прочих атрибутов.
В этой статье я расскажу, как выполнить такую адаптация на примере игры Pac-Man, а именно, оригинального образа Pac-Man.tzx.

