Сборочный компилятор - PullRequest
0 голосов
/ 27 июня 2011

Кто-нибудь знает инструмент разработки и компилятор для Assembly / Assembler. Я не планирую в этом разлагать приложения, просто чтобы получить представление о сборке, писать приложения Hello World и т. Д. Спасибо.

Ответы [ 5 ]

3 голосов
/ 27 июня 2011

Вам, вероятно, не нужен компилятор для ассемблера, поскольку вы намереваетесь выполнить код непосредственно на машине, поэтому вам просто нужен ... ассемблер .Если вы в Linux, используйте as.

2 голосов
/ 27 июня 2011

Я знаю о MASM и NASM. Если вы в C / ++, вы можете использовать встроенный ассемблер. Кстати, когда вы программируете ассемблер, у вас есть не компилятор, а ассемблер.

1 голос
/ 27 июня 2011

поиск большого пальца на github.com, это симулятор набора большого пальца (набор команд с ограничением руки).Есть несколько примеров, не так много на преподавании, но дает вам хотя бы несколько примеров того, как собрать и связать.вам действительно нужны только binutils (./configure --target = arm-elf --prefix = /thing: make all install) для ассемблера для arm и ряда платформ.если вы не хотите этого делать, просто получите облегченную версию из исходного кода, они соберут хороший кросс-компилятор / инструменты на основе gcc для arm.binutils является частью этого пакета.У меня также есть симулятор набора команд msp430, очень хороший набор инструкций для обучения ассемблеру (x86 - худший набор команд для обучения ассемблеру, так что сделайте это в последнюю очередь), симулятор msp (я мог бы назвать его mspulator) не такхорошо проверенный как большой, в то же время он значительно проще, и если у вас есть проблемы, вы можете отладить его самостоятельно или записать мне записку, и я исправлю это.Итог: я рекомендую учиться на симуляторе, где у вас хорошая видимость, например, qemu не попадает в эту категорию.Я бы избегал ассемблера x86, пока вы не разберетесь в нескольких других, более лучших, наборах команд.Msp430 очень хорош в качестве первого набора инструкций.рука и большой палец (удерживайте на thumb2, пока вы не сделаете другие два) довольно хороши.Предположительно dlx / mips, но у меня нет личного опыта (см. Ответ SPIM).После этого тогда avr или 8051. Старый рис (не dspic или pic32) является образовательным, но вы быстро видите его ограничения, помогая вам по-другому обдумать проблему.

Вы можете обнаружить, что яу меня есть несколько примеров xmos xcore на github, я возвращаюсь на xcore.Инструменты отличные, симулятор и т. Д. Документация неплохая, но не отличная, что приводит к моим образцам.Но на уровне ассемблера я бы назвал это продвинутым, но я все еще не могу рекомендовать его в качестве учебного пособия.Сначала зайдите с одним из других, а затем, возможно, посмотрите на xcore и эти образцы.Возможно, когда-нибудь я проработаю некоторые примеры, которые не входят в многопоточность и связь между потоками, а затем, возможно, порекомендую ее как не продвинутую.

1 голос
/ 27 июня 2011

Ну, есть Microsoft Assembler MASM, Turbo Assembler TASM и Netwide Assembler NASM, и еще несколько.На Википедии вы найдете гораздо больше информации для использования в своем онлайн-поиске.
Но ответьте на это: если вы хотите писать на некотором ассемблере, вы также должны выбрать конкретную платформу, где ваш код долженРабота.Вы уже знаете свою целевую платформу?Linux?Окна?MS-DOS?OS-X?OS / 2?AmigaDOS?Какое-то конкретное мобильное устройство?
А когда вы выбрали платформу, знаете ли вы, какой процессор вы будете использовать?Это будет процессор от AMD или Intel?Какая версия?Какая ревизия?

Возможно, вас больше заинтересует написание кода на C или C ++, поскольку эти два языка на самом деле не зависят от какой-либо платформы.Это также более практические знания, так как ассемблеры сильно устаревают в наши дни.

1 голос
/ 27 июня 2011

Попробуйте использовать SPIM

Это симулятор процессора MIPS, разработанный для запуска кода на ассемблере для этой архитектуры.

Это просто инструмент, который поможет вамизучить основы программирования на ассемблере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...