Assembler для dos windows и unix

MS-DOS и TASM 2.0. Часть 0. Программное обеспечение.

Выбираем ассемблер для DOS.

Изучать практическое программирование мы начнём с написания простейших программ для древней 16 битной операционной системы MS-DOS. В этом нам поможет ассемблер для DOS — TASM (Turbo Assembler) от Borland. Для того времени — это самый популярный ассемблер с прекрасным функционалом и возможностями, в состав которого входит прекрасный для того времени отладчик TD (Turbo Debuger).

Вы узнаете основы кодирования на ассемблере, которые вы с небольшими корректировками и изменениями сможете использовать при создании современных 32 и 64 битных приложений для Windows.

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

DOSBox или чистый DOS.

Среда — операционная система MS-DOS. Мы обойдёмся виртуальной машиной, приспособленной для современного пользователя — DOSBox. Можно воспользоваться поддержкой MS-DOS программ, которая имеется в операционках Windows до восьмой версии, но более полную совместимость с MS-DOS программами, которые мы будем использовать обеспечит только DOSBox.

Если Вы любитель даунгрейда, любите только «натуральное» то никто не против использования реальной операционки MS-DOS. Установить операционную систему DOS на старую или современную машину вам поможет Google. Мы можем рекомендовать посетить сайт любителей MS-DOS и древнего железа ms-dos.biz.

Необходимое программное обеспечение.

Основной софт, который нам понадобиться, чтобы бегло изучить ассемблер для DOS:

Устанавливаем пакет программ.

Об установке и использовании DOSBox поговорим в отдельном цикле статей. Не будем обсуждать и остальные программы. Если интересно, то Гугл в помощь. У нас конкретная цель — понимание сути программирования на примере изучения ассемблера.

Скачиваем архив DOS-1.rar и разархивируем. Должна появиться папка DOS, а в ней три директории: C, D, DOSBox. Заходим в пмпку DOSBox и кликаем на DOSBox.exe. Запустится эмулятор и автоматически — Norton Comander 5.0. Все необходимые программы установлены и настроены для наших целей. Директории C, D смонтированы как диски C:\, D:\ для удобства работы. На указанных дисках вы найдёте множество дополнительных утилит для удобства программирования в системе MS-DOS.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Добро пожаловать на Old-DOS.ru!

Если у вас есть хорошие программы для DOS, регистрируйтесь и добавляйте!.

Всего новостей 500

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21-40 50
Вышел №34 журнала Downgrade
На днях вышел 34-й номер журнала, скачать его можно здесь:
http://dgmag.in/N34/DowngradeN34.pdf
(12,2 МБ.)
Или у нас:
http://old-dos.ru/index.php?page=lib&do=show&id=614#file719

Добавлено German:
Надеюсь, тов. ctv не огорчится, если я допишу пару строк.

Товарищи, Всех с Новым Годом!
Наши усилия по поводу Old-DOS.RU – это достойное дело.
Хочу отдельно сказать про Old-DOS Wiki.
Old-DOS Wiki – это попытка воссоздать некогда существовавший справочник Downgrade Wiki с использованием иной концепции.
Если сравнивать его состояние с полётом самолёта, то за эти полгода, что проект существует, мы начали разгон по взлётной полосе.
На данный момент, Wiki – это лишь технический набросок. Но, с каждой правкой он становится чуточку ближе к полноценному справочнику.
За полгода Old-DOS Wiki смогла обрести структуру, появилось немного материала. Мы продолжаем процесс становления :).

Хочется поблагодарить всех, кто вносит свой вклад в развитие ресурса. Только совместная работа позволит нам процветать.
Спасибо вам, SR, uav, SokilOff, Nika, T-999, а также всем тем, кто не упомянут здесь, за то, что вы делаете для ресурса.

Надеюсь, что в 2021 году Наш замечательный ресурс Old-DOS.RU продолжит развиваться и радовать наших пользователей!

С НОВЫМ ГОДОМ, ТОВАРИЩИ!

Добавил ctv, 2020-12-31 18:27:05 Комментариев: 16

Windows NT 32-Bit v1.196 (September 1991 PDK)
Знаю, что подобные новости на главной не приветствуются многими участниками, но, думаю, это исключительный допустимый случай.
Оговорюсь, если эта новость таки неприемлима, то она будет убрана.
18/12/2020 в Интернете была опубликована уникальная вещь – очень ранняя предварительная версия Windows NT.
Комплект маркирован как «exPDK». То есть, экспериментальный предварительный комплект разработки, выпущенный на CD-ROM в сентябре 1991 года.
На данный момент это самая ранняя 32-битная версия Windows, доступная в сообществе.
Выпуск был отправлен некоторым избранным партнерам Microsoft на условиях неразглашения.
Впервые скан носителя был опубликован 20/09/2018. В то время считалось, что сборка будет похожа на выпуск COMDEX’91 (Oct’91).
Утечка показала, что это не так.
Выпуски 1.196 и Oct’91 имеют очень много внешних и архитектурных различий. Работа, проделанная за месяц, поражает результатами, достигнутыми в октябре 91 года.
Отмечу самые интересные, на мой взгляд моменты выпуска 1.196:
– Структура ядра, напоминающая OS/2.
– Уникальный загрузочный экран.
– Уникальная старая версия формата EXE-файлов Portable Executive, не совместимая ни с одной другой известной версией ОС.
– Элементы интерфейса из Windows 3.0/3.1.
– Портированные версии апплетов.
– README-файл, описывающий некоторые известные проблемы.

Внешне выпуск 1.196 очень похож на сборку 1.175, которую Билл Гейтс демонстрировал в промо-видео.

Сборка ещё изучается, результатов исследования в будущем станет только больше.

Галерея скриншотов доступна в нашей Wiki:
http://old-dos.ru/wiki/index.php/Windows_32-bit_OS_1.196_(September_1991)
Загрузить сборку можно на нашем сайте:
http://old-dos.ru/index.php?page=files&mode=files&do=show&id=1374#file22752

Спасибо за уникальный материал тов. ReflectiaX (aka BetaCollector), который его опубликовал!

P.S. Помимо выпуска 1.196, этим пользователем были опубликованы ещё два выпуска:
NT 3.1 [DEC OEM] [AXP]
NT 3.5 RC1 Workstation Japanese

P.S.2
Также, на BitHistory.org появился правильный дамп флоппи-версии (DMF) Windows 95 build 347 (English-Upgrade).

Добавил German, 2020-12-21 17:47:17 Комментариев: 11

Windows 1.0 исполнилось 35 лет.
Windows исполнилось 35 лет. Вспоминаем все версии операционной системы
Ровно 35 лет назад в этот день, 20 ноября 1985 года, Microsoft выпустила первую версию операционной системы Windows, которой впоследствии было суждено стать самой популярной ОС в мире. Windows 1.0 пришла на смену MS-DOS и принесла с собой много всего нового – элементов, которые в ней используются до сих пор. Это полосы прокрутки, диалоговые окна и такие приложения, такие Блокнот и Paint. В Windows 1.0 появилась поддержка мышки. Парадоксально, но поначалу многие жаловались, что в своей работе ОС слишком уж сильно опирается на манипулятор, вместо ввода команд с клавиатуры. Критикуют операционную систему и сейчас, но уже за другие вещи.
Для работы Windows 1.0 требовалось две дискеты, 256 КБ ОЗУ и графическая карта. Если была потребность в запуске нескольких программ, но требования повышались – жесткий диск и 512 КБ ОЗУ.

В то время на рынке ОС Microsoft конкурировала с Apple, но именно Windows было суждено стать самой популярной операционной системой. В нашей фотогалерее мы вспоминаем все основные версии Windows, от 1.0 до 10. Какая из них нравится вам больше всего и почему? Делитесь своими мнениями в комментариях.

Источник

MASM, TASM, FASM, NASM под Windows и Linux

В данной статье я хочу рассмотреть вопросы, которые могут возникнуть у человека, приступившего к изучению ассемблера, связанные с установкой различных трансляторов и трансляцией программ под Windows и Linux, а также указать ссылки на ресурсы и книги, посвященные изучению данной темы.

Используется для создания драйверов под Windows.

По ссылке переходим на сайт и скачиваем пакет (masm32v11r.zip). После инсталляции программы на диске создается папка с нашим пакетом C:\masm32. Создадим программу prog11.asm, которая ничего не делает.

Произведём ассемблирование (трансляцию) файла prog11.asm, используя ассемблер с сайта masm32.


Ключ /coff используется здесь для трансляции 32-битных программ.
Линковка производится командой link /subsystem:windows prog11.obj (link /subsystem:console prog11.obj)

MASM — один из немногих инструментов разработки Microsoft, для которых не было отдельных 16- и 32-битных версий.

Также ассемблер версии 6. можно взять на сайте Кипа Ирвина kipirvine.com/asm, автора книги «Язык ассемблера для процессоров Intel».

Кстати, вот ссылка на личный сайт Владислава Пирогова, автора книги “Ассемблер для Windows”.

MASM с сайта Microsoft

Открываем этот файл архиватором (например 7zip). Внутри видим файл setup.exe, извлекаем его, открываем архиватором. Внутри видим два файла vc_masm.msi,vc_masm1.cab. Извлекаем файл vc_masm1.cab, открываем архиватором. Внутри видим файл FL_ml_exe_____X86.3643236F_FC70_11D3_A536_0090278A1BB8. Переименовываем его в файл fl_ml.exe, далее, произведём ассемблирование файла prog11.asm, используя ассемблер fl_ml.exe.

MASM в Visual Studio

Также MASM можно найти в папке с Visual Studio (у меня VS 10) вот здесь: C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\ml.exe.

Для того, чтобы запустить на 32- или 64-разрядной системе и создавать программы, работающие как под 32-, так и под 64-разрядной Windows, подходит MASM32 (ml.exe, fl_ml.exe). Для того, чтобы работать на 32- и 64-разрядных системах и создавать программы, работающие под 64-разрядной Windows, но неработающие под 32-разрядной нужен ассемблер ml64.exe. Лежит в папке C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\amd64 и вот здесь — C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\x86_amd64.

Программный пакет компании Borland, предназначенный для разработки программ на языке ассемблера для архитектуры x86. В настоящее время Borland прекратила распространение своего ассемблера.

Скачать можно, например, здесь. Инсталлятора нет, просто извлекаем программу. Вот исходник из книги Питера Абеля (рис. 3.2) «Язык Ассемблера для IBM PC и программирования».

Выполним ассемблирование (трансляцию) файла abel32.asm.

Корректность работы программы можно проверить, произведя линковку (tlink.exe) объектного файла и запустив полученный файл в отладчике.

Как было сказано выше, MASM можно использовать для работы с 16-битными программами. Выполним ассемблирование (трансляцию) программы abel32.asm с помощью ассемблера MASM:

Ключ /coff здесь не используется.
Линковка производится файлом link16.exe

В статье Криса Касперски «Сравнение ассемблерных трансляторов» написано, что «FASM — неординарный и весьма самобытный, но увы, игрушечный ассемблер. Пригоден для мелких задач типа „hello, world“, вирусов, демок и прочих произведений хакерского творчества.»

Скачаем FASM с официального сайта. Инсталлятора нет, просто извлекаем программу. Откроем fasm editor — C:\fasm\fasmw.exe. В папке C:\fasm\EXAMPLES\HELLO есть файл HELLO.asm.

Откроем файл HELLO.asm из fasmw.exe. Изменим строку include ‘win32ax.inc’ на строку include ‘c:\fasm\INCLUDE\WIN32AX.INC’. Запускаем из меню Run → Run.

Вот ссылки на ресурсы, посвященные FASM:

Для того, использовать FASM в Linux (у меня Ubuntu), скачаем соответствующий дистрибутив (fasm-1.71.60.tgz), распакуем его, в папке у нас будет бинарный файл fasm, копируем этот файл в /usr/local/bin для того, чтобы можно было запускать его из консоли, как любую другую команду.Выполним ассемблирование программы hello.asm из папки fasm/examples/elfexe/hello.asm.

Корректность работы программы можно проверить в отладчике.

Nasm успешно конкурирует со стандартным в Linux- и многих других UNIX-системах ассемблером Gas.

Nasm в Linux можно установить его с помощью менеджера пакетов или из командной строки: в дистрибутиве Debian (Ubuntu) командой apt-get install nasm, в дистрибутивах Fedora, CentOS, RedHat командой yum install nasm.

Создадим программу, которая 5 раз выводит сообщение “Hello”. Пример взят из книги Андрея Викторовича Столярова “Программирование на языке ассемблера NASM для ОС UNIX”. Учебник, а также библиотека “stud_io.inc” есть на личном сайте автора.

Выполним ассемблирование и линковку и запустим файл hello.asm.

NASM для Windows можно установить, скачав соответствующий дистрибутив с соответствующего сайта.

Ссылки на ресурсы, посвященные Nasm:

Стандартный ассемблер практически во всех разновидностях UNIX, в том числе Linux и BSD. Свободная версия этого ассемблера называется GAS (GNU assembler). Позволяет транслировать программы с помощью компилятора GCC.

Из учебников удалось найти только книгу на английском «Programming from the ground up». На русском удалось найти только одну главу из книги С. Зубкова «Assembler для DOS, Windows и UNIX».

Возьмем пример программы, которая ничего не делает, с сайта. Создадим программу gas.s

Выполним ассемблирование (трансляцию), линковку и запуск программы:

Если в данной программе изменить _start на main, то можно выполнить ассемблирование (трансляцию) и линковку компилятором gcc.

Выполним ассемблирование (трансляцию), линковку и запуск программы:

Выводы: если вы изучаете программирование под Windows, то вы можете остановить свой выбор на Masm; Tasm больше не поддерживается, но для обучения по старым классическим учебникам подойдёт.
Под Linux Gas подойдет тем, кто использует GCC, а тем, кому не нравится синтаксис Gas, подойдёт Nasm.

Источник

Читайте также:  Fastboot windows 10 64 bit
Поделиться с друзьями
Советы экспертов и специалистов
Adblock
detector