Быстрый поиск
Введите фрагмент названия статьи для поиска
Алгоритм быстрой сортировки на Ассемблере
19.05.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Алгоритм быстрой сортировки на Ассемблере
Алгоритм быстрой сортировки появился еще на заре компьютерной эпохи в 1960 году. И до сих пор он остается одним из самых быстрых универсальных алгоритмов сортировки массивов. Несмотря на некоторые недостатки в виде наличия рекурсивных вызовов, алгоритм быстрой сортировки очень прост в реализации, не требует выделения дополнительной памяти и даже может быть распараллелен между несколькими подпроцессами.
Читать статью целиком »
Просмотров: 1525 | Комментариев: 1
Использование системных функций хеширования
07.05.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Использование системных функций хеширования
Я уже выкладывал на сайте ассемблерные реализации алгоритмов хеширования MD4, MD5 и SHA1. Но в Windows есть уже готовые функции для подсчета не только этих хешей, но и некоторых других. Конечно, делать все самому гораздо приятнее для души и полезнее для мозгов, но почему бы не переложить часть работы на систему? Как говорил один мой хороший товарищ: "У лошади голова большая, вот пусть она и думает".
Читать статью целиком »
Просмотров: 832 | Комментариев: 5
Как узнать сетевое имя компьютера и название домена
02.05.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Маленький сниппет для получения сетевого имени компьютера и названия домена. Но сперва структура, которая нам понадобится для работы.Code (Assembler) : Убрать нумерацию
- struct WKSTA_INFO_100
- wki100_platform_id dd ?
- wki100_computername dd ?
- wki100_langroup dd ?
- wki100_ver_major dd ?
- wki100_ver_minor dd ?
- ends
Code (Assembler) : Убрать нумерацию
- ; Запросить данные
- invoke NetWkstaGetInfo,NULL,100,lpWKSTA
- or eax,eax
- jnz loc_errror
- ; Указатель на структуру WKSTA_INFO_100
- mov ebx,[lpWKSTA]
- ; [ebx+WKSTA_INFO_100.wki100_langroup] -> название домена
- ; [ebx+WKSTA_INFO_100.wki100_computername] -> имя компьютера
Читать статью целиком »
Просмотров: 978 | Комментариев: 2
Как сделать ProgressBar с надписью
21.04.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Не перестаю удивляться, почему разработчики Microsoft с самого начала не реализовали "из коробки" очевиднейшие решения. Например, есть хороший и удобный элемент диалоговых окон - Progress Bar. Легко реализовать, удобно управлять, но по какой-то причине нет никаких инструментов, чтобы системными средствами наложить на индикатор прогресса какую-нибудь надпись типа "42% завершено". Градиентный ProgressBar мы уже делали, настала очередь реализовать ProgressBar с надписью.ProgressBar с надписью
Использовать стандартный элемент msctls_progress32 не будем, вместо него возьмем элемент EDIT или STATIC, как и в предыдущем примере. Полоса индикатора и надпись реализуется путем рисования прямо на канве элемента диалогового окна, которое выделено под индикатор.
Основная загвоздка заключается в том, что при отрисовке текста поверх индикатора прогресса, надо учитывать разницу в цвете фона и полосы выполненной части. Посмотрите на скриншоте, чтобы стало понятно, о чем идет речь. В некоторых случаях при определенной комбинации цветов можно использовать единый цвет, но это не самое хорошее решение. Так что сделаем все правильно.
Читать статью целиком »
Просмотров: 1115 | Комментариев: 1
Продвинутая работа с буфером обмена на Ассемблере
17.04.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Продвинутая работа с буфером обмена на Ассемблере
Еще одна статья, посвященная работе с буфером обмена. Обычно для этого используются функции GetClipboardData и SetClipboardData, но сегодня мы будем осваивать новый уровень - чтение и запись различных данных в буфер обмена при помощи OLE-функций. Хорошая практика для закрепления навыков работы с объектами.
Читать статью целиком »
Просмотров: 1712 | Комментариев: 0