Кто-нибудь получил MASM Assembly Language, работающий в Wine для Linux? - PullRequest
1 голос
/ 13 октября 2010

Очевидно, что WIne не поддерживает 16-битные приложения DOS.Кто-нибудь знает, как заставить сборку MASM в стиле Intel работать в вине?

Ответы [ 4 ]

3 голосов
/ 16 октября 2010

использование DosBox

2 голосов
/ 13 октября 2010

Вы пробовали использовать NASM ? Он бесплатный, с открытым исходным кодом, поддерживает Intel-подобный синтаксис, похожий на MASM [который, я признаю, я никогда не использовал], и работает практически на любой платформе x86, включая Windows, Linux, BSD и т. Д.

В вашем типичном дистрибутиве Linux или дереве портов BSD оно, вероятно, уже упаковано и готово к работе. (При условии, что вы apt-get, pkgadd или что-то еще.)

1 голос
/ 16 октября 2010

Решение вашей проблемы, вероятно, там: http://www.japheth.de/JWasm.html
Это MASM-совместимый синтаксис с открытым исходным кодом на ассемблере (около 100%, включая самые странные случаи синтаксиса MASM-адресации, псевдооперации структурированного программирования, макросы и т. П.).
Он может генерировать Intel OMF, MS Coff (32- и 64-разрядные), Elf (32-разрядные и 64-разрядные), Bin и DOS MZ.
И он существует в виде двоичных файлов для DOS, Windows и Linux.
И его можно даже встроить в OS / 2, FreeBSD.
Таким образом, у вас будет максимальное количество комбинаций ассемблера и целевого бинарного файла, включая те, где все происходит под собственным Linux.
Если вы компилируете в 16-битный код, вам придется выполнить его в 16-битной среде, что означает одно из предложений, которые вы уже получили.
Но вы также можете скомпилировать 16-битный синтаксис в код 32-битного режима, в зависимости от того, что вы пытаетесь сделать. Таким образом, вы можете выполнять 16-битные алгоритмы в 32-битных режимах, выполняя изначально в 32-битных средах, как позволяет архитектура x86. Однако сгенерированный код будет больше, поскольку ассемблер будет генерировать 16-битные escape-коды перед каждой 16-битной инструкцией, но это нормально, если это просто вопрос проверки логики вашего 16-битного кода.

Надеюсь, это имеет смысл для вас. Если этого не произошло, попросите больше ...

1 голос
/ 14 октября 2010

используйте DOSEMU для запуска 16-битной программы dos в Linux / unix

...