LINUX.ORG.RU

Адаптировать исходник MASM к современному открытому ассемблеру

 


0

1

Имеется исходник примерно 2000 года. https://github.com/DeclanHoare/stix/blob/master/src/EXP_32/EXP32.ASM. Подозреваю, что получен из дизассемблера. Процессор 80386, режим flat, директивы MASM. Tasm32 компилирует его без проблем.

Существует ли простой способ преобразовать его в вид, понятный современному свободному ассемблеру? Например, GAS или NASM? Хоть готовый скрипт, хоть таблица, описывающая соответствие директив.

Насколько пригодно к использованию http://www.delorie.com/djgpp/faq/converting/asm2s-sed.html? (Лишние разрывы строк убрал, компиляция даёт ошибки в первых строках unknown pseudo-op: `.' и no such instruction: `dgroup group data32'.)

★★★★★

на си переписать это дерьмо, заодно и быстрее работать будет вероятно

anonymous
()

https://www.nasm.us/doc/nasmdoc2.html#section-2.2

Какая целевая платформа, кстати? Неужто DOS?

    (* skip string pinter block identier (not used) *)
    schreib_zeiger^ := nil;
    Inc(schreib_zeiger);

Знание немецкого явно не помешает.

И да, там же куча ассемблерных вставок в паскалевском коде. Оно точно тебе нужно?

luke ★★★★★
()
Последнее исправление: luke (всего исправлений: 1)
Ответ на: комментарий от luke

Какая целевая платформа, кстати? Неужто DOS?

Похоже, писалось под Дос, переносилось на Win32, OS/2 и Линукс. Но привязано к связке TASM + Virtual Pascal.

куча ассемблерных вставок в паскалевском коде

Всего 5, и с ними FPC должен разобраться без особых проблем. Вот вызовы внешних процедур странно организованы — это да, проблема.

Оно точно тебе нужно?

Если найдётся другой распаковщик InstallShield 3.* с исходниками, этот брошу :)

https://www.nasm.us/doc/nasmdoc2.html#section-2.2

Спасибо, но с этого и начал. И уже запутался.

question4 ★★★★★
() автор топика
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от anonymous

на си переписать это дерьмо, заодно и быстрее работать будет вероятно

Знаешь конвертер ассемблера в стиле MASM в Си? Давай.

question4 ★★★★★
() автор топика
Ответ на: комментарий от question4

Вот вызовы внешних процедур странно организованы — это да, проблема.

Паскалевская конвенция для передачи аргументов через стек обратна сишной, может быть дело в этом?

Но наверное fpc умеет в обе.

luke ★★★★★
()

Вначале с немецкого переведите, будет банально легче понять, что за что отвечает.

Korchevatel ★★★★★
()

Один дискету восстанавивает. Другой - исходники из прошлого тысячелетия. Ждём тему «помогите запустить БЭСМ-6»?

lua
()
Ответ на: комментарий от luke

Но он не умеет читать маны, ничего не знает о линуксе, уже отформатировал дискету и выломал задвижку.

anonymous
()

Скомпилируй файл масмом в винде и потом дизассеблируй насмом или газом под Linux.

anonymous
()

Продублирую предыдущего оратора?

Оно точно тебе нужно?

anonymous
()
Ответ на: комментарий от luke

IST NICHT FÜR GEWERKEN BEI DUMMKOPFEN.

nicht editieren!

ACHTUNG! ALLES TURISTEN UND NONTEKNISCHEN LOOKENSPEEPERS!
DAS KOMPUTERMASCHINE IST NICHT FÜR DER GEFINGERPOKEN UND MITTENGRABEN! ODERWISE IST EASY TO SCHNAPPEN DER SPRINGENWERK, BLOWENFUSEN UND POPPENCORKEN MIT SPITZENSPARKEN.
IST NICHT FÜR GEWERKEN BEI DUMMKOPFEN. DER RUBBERNECKEN SIGHTSEEREN KEEPEN DAS COTTONPICKEN HÄNDER IN DAS POCKETS MUSS.
ZO RELAXEN UND WATSCHEN DER BLINKENLICHTEN.

anonymous
()
Ответ на: комментарий от anonymous

лул. Два чая этим анонимусам!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.