Создать исполняемый файл из ассемблерного кода

StackOverflow https://stackoverflow.com/questions/1816784

  •  08-07-2019
  •  | 
  •  

Вопрос

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

.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-битной среде, что может оказаться нетривиальным процессом.Весь код, который вы предоставили до сих пор, необходимо будет переписать.

Я рекомендую НАСМ поскольку это активный, хорошо поддерживаемый проект.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top