Использование другого ассемблера (MASM, NASM, TASM и т. Д.) С GCC - PullRequest
4 голосов
/ 09 февраля 2011

Я уже некоторое время просматриваю вопросы здесь и в Интернете, и я не могу понять, возможно ли выполнить встроенную сборку с GCC, используя что-то отличное от GAS. Я пытаюсь выяснить, могу ли я избежать использования не только синтаксиса AT & T GAS (хотя я знаю, как использовать синтаксис Intel с GAS), но и расширенного формата asm. Хотя это не для проекта или чего-то другого, кроме моего собственного любопытства, я был бы очень признателен за любую помощь, которую я могу получить (это на самом деле мой первый вопрос здесь, потому что я не смог найти ответ об этом)! Кроме того, если это имеет какое-то значение, в настоящее время я использую DevC ++ (для кода C, а не C ++) в Windows.

Спасибо, Том

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

Вы можете связать вывод из ассемблера (файл ".o" или ".obj") с вашей программой на C или C ++. Поместите ваш ассемблерный код в текстовый файл. Ваш IDE или make-файл соберет его так же, как и любой другой исходный файл. Единственный сложный момент - это научиться взаимодействовать между двумя разными системами.

1 голос
/ 09 февраля 2011

Вы не можете использовать другой встроенный синтаксис сборки с GCC.встроенная сборка реализуется GCC буквально, включая сборку, которую вы пишете inline, с собственным (текстовым) выводом сборки, который затем отправляется на gas для сборки.Поскольку GCC не знает, как изменить формат своего собственного вывода для передачи другому ассемблеру, вы также не можете изменить встроенную сборку.

...