Создать исполняемый файл из ассемблерного кода
Вопрос
Мне нужно создать исполняемый файл из следующего ассемблерного кода:
.MODEL SMALL
.DATA
TEXT DB 'Hello world!$'
.CODE
.STACK 20
.STARTUP
MOV AX, @DATA
MOV DS, AX
MOV AH, 9
MOV BL, 02H
INT 10H
MOV Dx, OFFSET TEXT
INT 21H
MOV AH, 4CH
INT 21H
END
Он работает с Турбо Ассемблером (tasm.exe), но продолжать с ним работу я не хочу, так как он не запускается в Windows 7.
Спасибо.
Решение
Если существует постоянная необходимость в разработке программ MSDOS, запустите 16-битную среду, например ДОСБОКС.Сюда tasm.exe
— один из лучших ассемблеров своего времени — может также запускать вместе с вашей программой и инструменты, входящие в состав tasm — Turbo Debugger, Turbo Linker и Turbo C.
Вы также можете установить Windows XP или Windows 98 поверх Windows 7 в качестве мультизагрузки вместе с ней или в виде виртуальная машина под управлением Windows 7.В любом случае у вас будет возможность без проблем запускать программы MSDOS.
Как упомянул Грег Хьюгилл, необходима серьезная переработка программы, чтобы она могла работать в 32-битной (или более поздней) среде.
Другие советы
используйте Microsoft макроассемблер (МАСМ)
Ваш код в том виде, в каком он указан, подходит для 16-битных систем DOS.Чтобы использовать современный ассемблер, вам придется модифицировать свой код для работы в 32-битной среде, что может оказаться нетривиальным процессом.Весь код, который вы предоставили до сих пор, необходимо будет переписать.
Я рекомендую НАСМ поскольку это активный, хорошо поддерживаемый проект.