Меню Рубрики

Установка tasm на dosbox

Ассемблер с нуля. Часть 5. Turbo Assembler.

Turbo Assembler — удачный пакет разработки DOS программ.

Изучать ассемблер мы начнём со знаменитого TASM. В годы господства MS-DOS Турбо ассемблер от Borland был одним из самых распространённых средств создания программ, составляя конкуренцию MASM. Очень продуманный и приятный ассемблер, создающий хороший код. Скачать TASM можно с нашего сайта — ссылка на архив в конце статьи.

Мы создадим простейшую программу и на её примере рассмотрим основные этапы разработки приложений. Программа после запуска выведет на экран сообщение «Hello World!» и завершится. Вначале не будем пользоваться средой программирования TASMED, а сделаем всё ручками, используя текстовый редактор и Турбо Ассемблер.

Этапы создания программы с использованием TASM.

Создание программы, которая будет работать в операционной системе MS-DOS включает в себя следующие шаги:

  1. Написание кода(текстовый редактор или среда разработки).
  2. Трансляция (tasm.exe).
  3. Компановка или линковка (link.exe).
    Результат вышеназванных действий — создание исполняемого файла (EXE или COM). Далее следует:
  4. Отладка (отладчик Turbo Debugger, дезассемблер Sourcer или >Строка в консоли «tasm ?» выведет справку.

Рассмотрим поподробнее каждый из этапов.

  1. Код пишем на ассемблере. Можно использовать простой текстовый редактор. Основное требование — кодировка ASCII. Большинство текстовых редакторов, как простых, так и более сложных во времена DOS работали с текстом указанной кодировки.
  2. Трансляция (компиляция) представляет собой перевод языка программирования в машинный код. В результате трансляции получается объектный файл с расширением OBJ. В TASM трансляция выполняется с помощью tasm.exe.
  3. Компановка (линковка) программы выполняет две задачи:
  • Соединение объектных файлов между собой.
  • преобразование из формата объектного файла в формат исполняемого файла (в системе MS-DOS — это файлы с расширением COM, EXE).В результате линковки создаётся исполняемый файл. В TASM компоновка выполняется с помощью tlink.exe.

Трансляция и линковка.

Зачем создание программы разделено на две части — трансляцию и линковку:

  1. Для того, чтобы дать возможность разделить работу по написанию кода на определённое число программистов — каждый пишет свой набор функций и сохраняет код в виде объектного файла. Затем объектные файлы соединяются
    и получается полноценный программный продукт.
  2. Чтобы можно было скрывать исходный код программ, продавая «полуфабрикат» — объектный файл (*.obj).
  3. Для ускорения просчёта машиной больших по объёму программ. Во времена дефицита мощности процессоров это было важно. Если проект большой, то предварительно скомпилированная часть кода (уже проверенная и отлаженная) существенно разгружала компьютер.
  4. Для совместимости использования различных ассемблеров (masm, tasm) — объектный файл стандартный и компонуется (линкуется) различными видами ассемблеров.
  5. Для быстрого и удобного переноса кода, написанного на ассемблере в программы на Си, C++. Такая же история: *.obj файлы, генерированные TASM замечательно воспринимается Turbo C, Turbo C++ и другими линкерами языков высокого уровня.

К слову сказать, не все ассемблеры имеют «двухпроходный» подход к созданию кода. Например, Fasm (очень хороший ассемблер), создаёт программу одним действием. *.obj файл не создаётся. Это несколько усложняет вставки написанного на Fasm кода в проекты, созданные другими средствами разработки программ. В принципе, это основной недостаток Fasm, с лихвой перекрывающийся остальными его достоинствами.

Впрочем, в настоящее время всё выглядит немного иначе. Царствуют на рынке среды разработки программ, подходящие к вопросам совместимости эгоистично (Embarcadero RAD Studio, MS Visual Studio).

Для удобства создания программ, можно создать отдельные «батники», куда вписать команды трансляции и компоновки.

Скачать TASM можно по нашей ссылке.

Вы можете скачать TASM по ссылке с нашего сайта. Кроме TASM для DOS в архиве вы найдёте все необходимые программы для разработки приложений в операционной системе MS-DOS, которые Вам понадобятся при прохождении нашего курса обучения.

В директории «TASM» имеются необходимые «батники» (ASM-COM.BAT, ASM-EXE.BAT, COMPLEX.BAT) для создания исполняемых файлов *.com, *.exe, сборки кода из нескольких ассемблерных (*.asm) файлов. Для их правильного использования, необходимо, чтобы файлы с кодом на ассемблере имели следующие имена:

  • prg.asm (ASM-COM.BAT, ASM-EXE.BAT).
  • prg.asm, prg1.asm (COMPLEX.BAT).

Более подробно — в следующей статье, где мы напишем нашу первую программу на ассемблере.

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

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

источник

Ассемблер с нуля. Часть 3. Ассемблер для DOS.

Выбираем ассемблер для 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:

  • TASM 2.0 (Turbo Assembler ver. 2.0)- 16 битный ассемблер для DOS фирмы Borland;
  • TC 2.0 (Turbo C 2.0) — среда программирования и компилятор Си фирмы Borland;
  • TD (Turbo Debugger) — отладчик фирмы Borland;
  • SR (Sourcer) — популярный дизассемблер для DOS;
  • IDA (Interractive Disassembler — DOS версия) — ещё один популярный дизассемблер;
  • T-HELP — перечень прерываний (функций) MS-DOS в удобном виде.
  • Hiew — очень популярный в свое время в среде программистов и хакеров редактор DOS с расширенными возможностями. Позволяет дизассемблировать код налету, вносить изменения и снова ассемблировать изменённый файл;
  • TASMED — удобная среда программирования на ассемблере для DOS.

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

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

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

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

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

источник

Ассемблер с нуля. Часть 6. Первая программа.

Наша первая программа на ассемблере.

Наша первая программа на ассемблере будет в формате *.COM — как мы уже знаем, исполняемые файлы указанного формата очень крохотные (tiny) по размеру и состоят из одного сегмента, в котором размещаются код, данные и стек.

Ещё мы знаем, что в указанном формате пишутся резидентные программы, драйверы и вирусы.

Резидентная (TSR-программа, от англ. Terminate and Stay Resident) — это программа, которая после запуска передает управление операционной системе, но сама не завершается, а остаётся в оперативной памяти, реагируя на определённые действия пользователя. Например, при нажатии сочетания горячих клавиш делает снимок экрана.

Код в статьях отображается в удобочитаемой форме: каждая строка имеет свой номер, строки и код подсвечиваются. Чтобы скопировать «чистый исходник», наведите курсор мыши на текст, дождитесь всплывающего меню и нажмите в меню кнопочку «копировать» (изображение двух листочков бумаги с текстом). Чистый код не содержит нумерации строк!

Наша первая программа выведет на экран монитора (консоль) надпись «Hello, World!». Итак, как говорил Юрий Алексеевич, поехали!

Создаём исполняемый файл PRG.COM.

Для достижения нашей цели делаем следующее.

  • Скачиваем с нашего сайта архив (DOS-1.rar) с предустановленными DOSBox и программами. Запускаем DOSBox. Стартует эмулятор MS-DOS и Norton Commander пятой версии.
  • В папке D:\TASM.2_0\TASM\ находим текстовый файл PRG.ASM. Это обычный текстовый файл, который можно создать
    с помощью любого текстового редактора, с расширением ASM вместо TXT.
  • В файл вносим код:
  • В папке D:\TASM.2_0\TASM\ находим «батник» ASM-COM.BAT со следующим текстом:

Первая строка — запуск транслятора с названием нашего файла с кодом, расположенного в одной директории с транслятором.

Вторая строка — запуск компилятора с параметрами /t /x и название объектного файла — prg.obj, получившегося в результате выполнения первой команды.

Чтобы посмотреть список всех возможных параметров с пояснениями для файлов tasm.exe и tlink.exe необходимо запустить эти программы без параметров. Если вы сделаете это, не выходя из оболочки NC, то, чтобы просмотреть чистое окно DOS нажмите Ctrl+O, чтобы вернуться в NC, нажмите сочетание клавиш повторно.

  • После запуска ASM-COM.BAT в этой же директории появится файл prg.com. Запустив его мы увидим сообщение «Hello World!» в окне MS-DOS (при необходимости просмотра, снова применяем Ctrl+O).

Батник ASM-EXE.BAT предназначен для создания исполняемого файла формате *.EXE (предусматривает раздельную сегментацию для кода, данных и стека — наиболее распространённый формат исполняемых файлов DOS).

Батник COMPLEX.BAT предназначен для создания исполняемых файлов из двух файлов кода (названия обязательно должны быть prg.asm, prg1.asm).

Наша первая программа на ассемблере прекрасно работает!

TASMED (Tasm Editor) — среда разработки приложений DOS на ассемблере.

Выше мы рассмотрели стандартный подход к программированию на TASM в системе MS-DOS. Указанным алгоритмом создания программ можно пользоваться и далее.

Для более удобной работы с кодом целесообразно применять какую-либо среду разработки. Среда разработки — это громко сказано для времён MS-DOS, правильнее сказать — специфический редактор.

Можете попробывать TASMED в папке D:\UTILS\TASMED\. Программа уже настроена и готова к использованию.

Первая программа на ассемблере в среде разработки TASMED.

  • подсветка ассемблерного синтаксиса;
  • возможность сохранения проектов под любым именем и в любой директории;
  • работа как с TASM, так и MASM.
  • только английский язык интерфейса, но английский программист должен знать лучше русского;
  • слишком много настроек для текстового редактора.
    Хотя, в принципе, настройки — не проблема. Основное, что необходимо настроить — это соответствующие пути:
    Options->External->Assembler
    Options->External->Linker
    В общем, разобраться не сложно.

Практические советы: группирование проектов, русский язык в MS-DOS.

Для удобства группирования создаваемых программ можно создать отдельную папку (мы создали папку PROJECTS) в которой создавать папки названий проектов, куда копировать соответствующие файлы. Пока у нас — это PRG.ASM, PRG.OBJ, PRG.EXE. Однако, в зависимости от параметров и наших программ их может быть больше (PRG.MAP, PRG.SYM и др.).

В нашем случае, все программы, рассматриваемые в курсе обучения будут группироваться в директории D:\WORK в соответствующих папках. Например, наша первая программа в папке D:\WORK\PRGCOM\ (файлы prg.asm и prg.com). Папку D:\TASM.2_0\PROJECTS\ оставляем пустой для ваших проектов и экспериментов.

Для того, чтобы в исходниках, которые вы будете просматривать в системе MS-DOS с использованием текстовых редакторов DOS и различных сред разработок нормально отображалась кириллица (например в комментариях к строкам кода) необходимо проделать следующие действия.

  1. Запустить драйвер русской раскладки клавиатуры. В нашей запущенной MS-DOS системе на базе DOSBox это файл C:\KEYRUS\keyrus.com. Впрочем, при запуске MS-DOS согласно нашим настройкам DOSBox, он запустится автоматически. При этом будет обеспечено не только отображение русского текста в текстовых редакторах, но и русскоязычная раскладка клавиатуры. Переключение раскладки Eng->Rus и наоборот — горячая клавиша «правый CTRL».
  2. Текст исходников необходимо писать в текстовых редакторах или средах разработки DOS.
  3. Если исходники пишутся в Windows редакторах, должна быть обеспечена русскоязычная кодировка текста — ASCII для DOS (CP866 или OEM866).

Русскоязычная кодировка текста — программа просмотра файлов Total Commander. Русскоязычная кодировка текста — используем Notepad++.

Конечно вопрос снимается сам собой, если комментарии писать на английском.

В следующей статье мы разберём код нашей первой программы на ассемблере.

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

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

источник

DosBox и MS-DOS

Эмулятор DOS(DOSBox) и com-port
Добрый день форумчане, Имеется ноутбук на котором установлена windows xp xp3 к данному ноутбуку.

Запуск QBasic эмулятором DOS DosBox 0.74
Доброго времени суток. Сейчас мне приходится запускать QuickBasic с помощью эмулятора DosBox.

Как в DOS-BOX написать BAT-файл чтобы ЛЕГКО запустить DOS-программу ?
ВСЕМ ДОБРОГО ВРЕМЕНИ ! Надо на Windows_7 СРОЧНО запустить старую программу, написанную еще под DOS.

Написать программу, выводящую на экран номер версии DOS, а также системную дату и время на языке MS-DOS
написать программу,выводящую на экран номер версии DOS,а также системную дату и время на языке.

ок, сейчас всё сделаю ага, на немецком.

В общем, это маленькая игрушка для тренировки памяти. Нужно найти две одинаковые карты и тогда получаешь очки.

Программу компилирую так, захожу в папку asm и ввожу: comp main

эту часть писал мой одногрупник, но как я понял, этот блок ни что иное как процедура setmode2 из proc.asm, её я взял из книги. только что заменил эти 6-ть строчек на call setmode2, но без изменений.

или может чего не понимаю, не могли бы Вы разяснить?!

Мы писали блоками, если одна часть работала, то использовали её. Иногда отдельные функции писались параллельно, мной и одногрупником. В итоге брали мой код или его

Ввиду того, что современные видеоадаптеры(VBE3) не обязаны быть VGA-совместимыми, то для нормальной работы на современном железе неоходим или эмулятор(типа DOSBox’а), или необходима замена всех операций с VGA-портами на соответствующие вызовы VESA-BIOS, ну и видеорежим, соответственно, должен быть подходящий, из списка, возвращаемого Fn4F00h INT 10h, или использовать старые видеокарты до VBE2 включительно.

Добавлено через 2 минуты
нормального нечего ненашол..мне надо узнать как написать комади date. time . ver..надо найти их код как они програмируются в досе

jenia1896, посмотри , написано что эти команды появились уже в версии 1.1 ms-dos, команды внутренние обрабатывал command.com, посмотри его исходник

Добавлено через 6 минут
jenia1896, обязательно надо из дос выдернуть ? самому сделать нельзя ?

Да надо выдернуть ети команди . то есть их строки и кинуть в курсач

Добавлено через 2 минуты
что ето??

Добавлено через 41 секунду
что ето ??(((прерывание 1Ah, ещё никто не отменял. )))

Решение

jenia1896,
Этот сервис предоставляет доступ к системным часам. PC BIOS работает со «счетчиком тиков» — числом 55-мс интервалов, прошедших с момента включения или сброса PC. AT BIOS предоставляет также доступ к значениям часов реального времени, которые постоянно обновляются независимо от работы процессора и хранятся в CMOS-памяти компьютера AT.

AH сервис
— —————————————————————————-
00H читать часы (счетчик тиков)
выход: CX,DX = счетчик тиков с момента сброса. CX — старшая часть значения.
AL = 0, если таймер не переполнялся за 24 часа с момента сброса.
замечание: часы обновляются каждые 1193180/65536 (ў 18.2) тиков в секунду.
тиков в секунде ў 18
тиков в минуте ў 1092
тиков в часе ў 65543
тиков в сутках ў 1573040
— —————————————————————————-
01H установить часы (счетчик тиков)
вход: CX,DX = счетчик тиков. CX — старшая часть значения.
— —————————————————————————-
02H ¦AT¦ читать время из «постоянных» (CMOS) часов реального времени
выход: CH = часы в коде BCD (пример: CX = 1243H = 12:43)
CL = минуты в коде BCD
DH = секунды в коде BCD
выход: CF = 1, если часы не работают
— —————————————————————————-
03H ¦AT¦ установить время на «постоянных» (CMOS) часах реального времени
вход: CH,CL = часы,минуты в коде BCD
DH = секунды в коде BCD
DL = 1 для опции «единиц светового дня»
— —————————————————————————-
04H ¦AT¦ читать дату из «постоянных» (CMOS) часов реального времени
выход: CH = столетие в коде BCD (пример: CX = 1987H = 1987)
CL = год в коде BCD
DH = месяц в коде BCD (пример: DX = 0312H = 12-е марта)
DL = день в коде BCD
выход: CF = 1, если часы не работают
— —————————————————————————-
05H ¦AT¦ установить дату на «постоянных» (CMOS) часах реального времени
вход: CH,CL = столетие,год в коде BCD
DH,DL = месяц, день в коде BCD
— —————————————————————————-
06H ¦AT¦ установить сигнал часов реального времени. В указанное время вызывается
пользовательская программа по вектору прерывания INT 4aH. Лишь один сигнал
может быть активен в каждый момент времени.
вход: CH,CL = часы,минуты в коде BCD
DH = секунды в коде BCD
выход: CF = 1, если часы не работают или сигнал уже активен
— —————————————————————————-
07H ¦AT¦ сбросить сигнал часов реального времени. это позволяет вам отменить
один сигнал перед установкой другого.

источник

Читайте также:  Установка пластикового подоконника на уголки

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

Adblock
detector