Как создать программу MSDOS с помощью MASM32 и запустить ее в DOSBox
Загрузите MASM32 и DOSBox для Windows и установите их. После этого MASM32 должен быть в C:\masm32, а DOSBox в %ProgramFiles^(x86)%\DOSBox-0.74 соответственно. %ProgramFiles%\DOSBox-0.74.
Запустите быстрый редактор MASM (qeditor.exe
) и загрузите menus.ini
.
Прокрутите вниз до
&Run Program,"{b}.exe"
[&Tools]
Вставьте пять строк:
&Run Program,"{b}.exe"
-
Assemble 16-bit .asm to .obj,cmd /C\masm32\bin\ml.exe /c "{a}" & pause
Link 16-bit .obj to .exe,cmd /C\masm32\bin\link16.exe "{b}" ,,,,, & pause
Build 16-bit .asm to .exe,cmd /C\masm32\bin\ml.exe /Bl"C:\masm32\bin\link16.exe" "{a}" & pause
Run in DosBox,cmd /Cstart /D"%ProgramFiles(x86)%\DOSBox-0.74" DOSBox.exe "{b}.exe"
[&Tools]
В конце концов вам придется изменить %ProgramFiles(x86)%
на %ProgramFiles%
- там, где был установлен DOSBox. Введите в командной строке SET
и посмотрите, какие каталоги выделены для этих переменных среды. Сохраните файл и перезапустите быстрый редактор MASM32. Теперь у вас в разделе «Проект» три новых пункта в конце.
Введите программу сборки MS-DOS в синтаксисе MASM:
.MODEL small
.STACK 1000h
.DATA
hello db "Hello world!", 13, 10, '$'
.CODE
main PROC
mov ax, @DATA ; Initialize DS
mov ds, ax
mov dx, OFFSET hello ; You can also write lea dx, hello
mov ah, 09h ; http://www.ctyme.com/intr/rb-2562.htm
int 21h
mov ax, 4C00h ; http://www.ctyme.com/intr/rb-2974.htm
int 21h
main ENDP
END main
и сохраните его под именем 8.3, например. hello.asm
.
Нажмите Проецировать/собрать 16-разрядный .asm в .exe и закройте окно, нажав любую клавишу. Теперь нажмите Проект/Выполнить в DosBox. Откроются окна DOSBox, и программа запустится. Окна DOSBox остаются открытыми, поэтому вы запускаете программу в командной строке, например. введите "hello.exe".
person
rkhb
schedule
10.04.2017