![]() |
![]() |
|
|
![]() |
![]() |
||
![]() |
||||
![]() |
||||
| Краткие сведения об авторе страницы | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| Небольшой экскурс в историю покупки и сборки моего железа, ведь не смотря на то, что без программного обеспечения невозможна работа компьютера, оно же должно где-то храниться и на чём-то выполняться | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| В разделе содержатся полезные утилиты и исходные тексты программ на Ассемблере, работающих с периферийными устройствами (клавиатура, SoundBlaster и т.д.) | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| Здесь Вы найдёте различные программные модули (библиотеки), например, модуль для работы с мышью или клавиатурой. Модулей пока не так много, но раздел в будущем будет обновляться | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| Раздел содержит несколько готовых, откомпилированных программ с исходными текстами на языках C/C++, Assembler и Паскаль. Раздел постоянно обновляется | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| В этом разделе собрано несколько игр, написанных на Паскале и C++. Все архивы с играми содержат исходные тексты | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| В этом разделе можно найти несколько увлекательных лабиринтов для знаменитой игры Quake фирмы ID Software, а также прочитать про сценарии игры и скачать, собственно, сами эти сценарии | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| В этом разделе собрано несколько карт к знаменитой игре Half-Life с исходными файлами для редактора уровней Quark версии 5 | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| Раздел "Графика" содержит тщательным образом отобранные красивые заставки на ассемблере и С++. Одна заставка даже использует сопроцессор, но написана только для демонстрации его возможностей. Раздел постоянно обновляется | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| Здесь находится большое количество готовых курсовых проектов по различным предметам, в основном техническим, а также много выполненных лабораторных работ (некоторые даже с отчётами) по предметам, связанным с программированием. Раздел обновляется после сд ачи очередной лабораторной работы или курсового проекта | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| Раздел содержит несколько статей, посвящённых периферийным устройствам (SoundBlaster, VGA) и программированию, а также руководства по некоторым программам. Раздел постоянно обновляется | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| В этом разделе можно отправить сообщение автору страницы, просто заполнив форму сообщения. Все сообщения посылаются по электронной почте, поэтому у Вас должна быть настроена соответствующая почтовая программа (типа Microsoft Outlook Express) | ||||
![]() |
![]() |
|||
![]() |
||||
![]() |
||||
| В этом разделе собрано несколько красивых, на мой взгляд, картинок, нарисованных в 3D Studio и в Photoshop | ||||
![]() |
![]() |
|||


![]()
Может быть, Вам когда-либо приходилось слышать подобную фразу: "Ассемблер - это геморрой". Пусть она не вводит Вас в заблуждение - всё так и есть. Писать на ассемблере тяжело, программы с ошибками могут прочно "вешать" систему и приводить к неожиданным результатам (например, у меня один раз получилась такая ситуация, что Windows выдала сообщение "Ошибка записи в порт LPT1", хотя программа должна была вывести на экран картинку), но, благодаря гибкости этого языка, на нём можно писать такие программы, которые были бы не под силу языкам высокого уровня. К тому же программа на ассемблере, если она написана правильно, может иметь быстродействие, несравнимое с аналогичной программой на языке высокого уровня. Для примера скажу, что EXE файл игры Quake I написан на ассемблере. Ниже приведено несколько программ (естественно, на ассемблере) которые, по моему мнению, представляют наибольший интерес:
|
Программа рисует на экране приблизительную форму сигнала, поступающего на вход музыкальной карты с микрофона. Работает с музыкальными картами, совместимыми с SoundBlaster с базовым портом ввода-вывода от 210h до 280h (конкретный порт выбирается автоматически). IRQ - любой (программа его всё равно не использует. DMA - тоже любой. Если микрофон не подключён, то на экране будет только прямая линия. |
![]()
|
Архив содержит две программы часов. Одна рисует красивые часы с цифровым индикатором и текстурами на заднем плане. Другая представляет собой резидентные часы. Запускается из-под DOS, и выводит в левом верхнем углу текущее время (как часы в Нортоне). |
![]()
|
Программа SLASH
представляет собой
резидентную программу, которая
"вращает" символы слэша на
экране (по типу как в Dr. Web во
время теста). Исполнительная
часть программы - .COM файл
занимает рекордно малое
количество байт - 48. История
программы очень интересная.
Поспорил я с одним чуваком, что
напишу программу для вращения
слэшей, занимающую 48 или менее
байт. Сначала он (чувак) написал
программу размером 96 байт,
потом свёл до 80 байт. Я же для
начала уложился в 57 байт. Далее
у него было 56 байт и я обломался
. Но ненадолго - в тот же день
написал представленную здесь
программу размером в 48 байт! Предупреждение. Программа не работает на машинах ниже 386. |
![]()
Не смотря на то, что клавиатура является стандартным устройством ввода, можно придумать много развлечений с ней, написав соответствующие программы на ассемблере:
|
Эта программка расчитана на легкомысленных админов, которые на скорую руку запускают login.exe и набирают пароль на машине пользователя... Программа записывает все символы (но не расширенные ASCII коды!) в файл C:\KEYLOG.LOG. Имя и путь к файлу можно варьировать (для этого нужно просто изменить соответствующую строку исходника). Программа открывает файл для добавления после ввода каждого десятого символа. |
|
Программа "меняет местами" функциональные клавиши в таком порядке: нажимаете F1, нажимается F10, нажимаете F2 нажимается F9 и т. д. Также "меняет местами" клавиши Enter и Esc. Можно подсунуть кому-нибудь в autoexec и долго развлекаться в Нортоне. |
|
Данная программка зажигает по очереди лампочки клавиш NumLock, CapsLock и ScrollLock, по Esc гасит все лампочки и вываливается в DOS. |
|
Эта программа ещё веселей - при нажатии на знаменитые Ctrl + Alt + Del она выдаёт сообщение "Ctr + Alt + Del Pressed, System halted" и вешает систему, поможет только Reset. Не используйте её из Windows - Windows сначала передаёт управление системному обработчику, а затем пользовательскому обработчику в режиме виртуального 86-го, так что Windows всё равно перехватит Ctr + Alt + Del . |
|
Вот, пожалуй, самая забавная программа из этого раздела. Она с помощью int 16h, ah = 05 эмулирует нажатия клавиш на клавиатуре. Можете только попытаться представить себе что будет, если её запустить в Нортоне! Например, она может через случайные промежутки времени вызывать нажатия функциональных клавиш, Enter, Esc, и других в некоторой хитрой последовательности, вызывая при этом копирование, УДАЛЕНИЕ, перемещение файлов, создание произвольных директорий, правка и запуск программ и т. д. У меня на втором компьютере она чуть пол-винта не стёрла а директорию LNG\BP\BIN я потом долго искал. |
С дисками тоже можно немного позабавиться... Вот, например, int 13h - сервис ROM BIOS для работы с диском на низком уровне (чтение, запись секторов, форматирование дорожек...). Перехват этого прерывания зачастую используется для на писания различных драйверов. Пример тому SMARTDRV, RAMDRIVE и др. RAMDRIVE перехватывает int 13h и затем, при обращении к оному "читает сектора" из оперативной памяти...
|
Данная программа
действует следующим образом:
при попытке обращения к диску A
она эмулирует, системную
ошибку, выдаёт значения
регистров на экран (типа как
QEMM), выдаёт сообщение "System
halted", выполняет CLI @1: JMP @1 (можно было бы так: CLI HLT, но первый способ более наглядный) и вешает систему. Кто непосвящён в ассемблер, для понимания вышенаписанных строчек может заглянуть сюда. |
|
Полезная утилита. Представляет собой программу терминала для связи по COM портам. Сначала писалась в качестве курсового проекта по ассемблеру, но потом оказалось, что задание на курсовой проект несколько другое... Может работать с COM1, COM2, COM3, COM4, но последние два порта аналогичны первым двум. Прекрасно работает на скоростях от 2400 до 115200 (через RS-232), или может даже работать с модемом, если он стоит на соответствующем порте. В этом случае нужно только знать команды модема для набора номера и т.д. Скорости передачи данных на двух компьютерах должны быть одинаковыми, иначе будут выводиться непонятные символы. |
![]()
Copyright © 1999 by HackMaster