ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.

последняя редакция 28.04.04
Новиков Максим Глебович

Программировать на ассемблере я начал давно, когда у меня еще не было IBM-совместимого компьютера. В начале 1992 года у меня появился советский компьютер БК 0010-01. Вот на нем-то я и написал свою первую ассемблерную программу.

Я писал простенькие игры, а также управляющие программы для различных внешних устройств, таких как ёлочные гирлянды и т.п. Так, мой робот, сверлящий по программе отверстия в фольгированном гетинаксе, управлялся именно такой программой. Достаточно было самому с клавиатуры робота просверлить отверстия в одной плате, как все остальные платы, разложенные на его рабочем пространстве, он сверлил сам.

4 февраля 1994 года у меня появился компьютер на базе процессора 80386, и я плавно перешел на IBM-совместимую архитектуру. Хотел перевести на неё и робота, но дело заглохло на полпути — появились другие интересы.

Из коммерческих программ на ассемблере у меня была написана всего лишь одна, зато какая! Программа называлась «Tabular Summator Quartet». Это была программа учета платёжных документов по четырем производственным участкам и подсчетов неоплаченных остатков с выводом содержимого своих баз на принтер. Ее написание было начато 21.11.1996, а 21.05.1997 появилась уже последняя версия 3.3 этой программы, проработавшая вплоть до модернизации компьютеров. Минимальные требования программы к системе фантастические — процессор 8086/8088, видеоадаптер MDA (с кириллицей). Комментарии излишни…

Скриншот программы
«Tabular Summator Quartet»

Интерфейс программы реализован в стандартном текстовом режиме № 3 (80х24), возможен переход в монохромный режим № 1.

Программа имеет объем 36 Кбайт, а длина исходного текста составляет около семи тысяч строк.

Многие приемы, использованные в программе для достижения быстродействия и компактности являются уникальными.

Ниже собраны некоторые из моих некоммерческих программ, написанных на ассемблере. Все они создавались для MS-DOS, тем не менее, их можно запустить и из-под Windows. Если у вас Windows 95, 98 или ME, то после распаковки файлов из архива запускаете файл с расширением «com», переключаетесь в полноэкранный режим соответствующей кнопкой на верхней панели открывшегося окна windows, и наслаждаетесь режимом MS-DOS. Возможно, вам также придётся загрузить русификатор (были такие драйверы типа «rk.com», «keyrus.com» и т.п.)

Если вы испытываете затруднения с распаковкой файлов из архива, и слабо представляете, что это вообще такое, посетите неплохой сайт по этой тематики — http://www.compression.ru/ Там есть ссылки и на сами архиваторы, если таковых у вас нет. Для сжатия своих файлов я применяю архиватор «WinRAR».

Если у вас NT, 2000 или XP, придется научить их включать режим MS-DOS с загруженным русским знакогенератором. Как это сделать, я сейчас расскажу. В папке Windows есть папка system32. Внутри найдите файл autoexec.nt. Этот файл запускается всякий раз, когда вы запускаете программу для MS-DOS. По умолчанию он уже содержит команды на загрузку некоторых драйверов для MS-DOS. Вам надо добавить туда загрузку русификатора для MS-DOS, такого, как «rk.com» или «keyrus.com», чтобы русский текст в текстовых режимах не отображался в виде непонятной «вязи».

Добавить программу просто. Для этого надо в последней строчке файла «autoexec.nt» дописать строку полного пути к русификатору, например:

C:/rusific/rk/rk.com

Не используйте длинные имена файлов, следуйте стандартам DOS, то есть в имени до точки не должно быть более 8 символов и не должно быть пробелов, а после точки не должно быть более 3 символов и тоже не должно быть пробелов.

Сохраните файл autoexec.nt. Теперь, при запуске любых программ MS-DOS у вас автоматически будет подгружаться русификатор.

Ещё одной замеченной мной проблемой в NT стала неправильная инициализация палитры DOS-режима. Если вы столкнулись с тем, что некоторые буквы в моей программе не видны (имеют цвет фона), то скачайте отсюда и кроме русификатора пропишите в «autoexec.nt» программку «inivideo.com». Она инициализирует палитру DOS-режима.

А теперь, сами программы:

Все программы поставляются с описанием в формате .asc и исходниками на ассемблере.

lt_7_010.rar

Ламерометр. Тест на ламерность. Содержит тесты на знания о компьютере и на знания о вождении автомобиля. Вы можете самостоятельно изобрести дополнительные тесты к ламерометру, ознакомившись с инструкцией.

minocr.rar

Самая маленькая логическая игрушка Крестики-нолики (512 байт!). Меньше игру крестики-нолики еще никто не написал. Да и зачем, если на дискете она всё рвно займёт 512 байт :-)

cologic.rar

Игра «Логика цвета». Прообразом был мой пластмассовый вариант этой игры.


Пока всё. Программок у меня много, но в основном это отдельные модули и резиденты, предназначенные для специфических целей и не представляющие интерес для широкой общественности.

К сожалению, остался невыпущенным электронный журнал сети FoxbatNet, названный «COOLER», оболочка которого представляла собой шедевр ассемблерного программирования. В текстовом режиме были реализованы такие визуальные эффекты, как вывод 512 символов одновременно, «резиновый» экран, плавающая панель, 90 символов в строке и многие другие эффекты, несвойственное текстовому режиму. Причина заморозки проекта банальна — не набралось достаточного количества статей.

Качественный скриншот журнала сделать не удалось (очень уж нестандартно он сделан), поэтому предлагаю фотографию с экрана.

Снизу открыта «плавающая» панель с информацией. Выплывает при нажатии на клавишу «Ctrl».

Также осталась на стадии 1-ой beta-версии операционная оболочка «Maxim Navigator»:

Особенности оболочки:

1.Корнем файлового дерева является список устройств.
2.Режим экрана 90х26 (Текст)
3.Улучшенная процедура обработки критических ошибок.
4.Найден алгоритм безошибочного определения дисководов «А:» и «В:» в случае нестандартной их конфигурации.
5.Сверхскоростной вывод информации на экран.
6.Постоянный вывод оперативной информации на экран.

[Вернуться в начало]
[Оставить отзыв в гостевой]
Hosted by uCoz