Каковы ограничения ассемблера? (NASM) - PullRequest
3 голосов
/ 28 мая 2010

Есть ли техническое ограничение на то, какие программы я могу писать с помощью ассемблера (NASM)?
Пока что мне показалась только программа, выполняющая арифметические операции, например, добавление двух чисел.

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

Я знаю, что не буду писать такие программы, но мне любопытно, есть ли технические ограничения на то, какие программы я могу писать с помощью ассемблера.

Ответы [ 4 ]

14 голосов
/ 28 мая 2010

При наличии достаточных знаний о целевой системе, вы можете делать все, что захотите, через ASM. Однако есть и другие вещи, которые затрудняют управление. Но я видел много GUI, которые были сделаны в ASM. На них было не особенно приятно смотреть, но они сделали. Я видел парня, который писал видеоигру (эта игра с астероидами, а в середине экрана у вас есть маленький корабль, стреляющий из пулемета или лазера) в чистом виде ASM. Он хотел проверить себя, и уже сделал несколько ASM раньше. Так что да, это может быть сделано, что вы хотите.

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

4 голосов
/ 28 мая 2010

Ограничений как таковых нет. Программы, написанные на C или C ++, проходят этап как исходный код на ассемблере во время компиляции, поэтому по определению вы можете написать что-нибудь от полной операционной системы, такой как Windows, до приложения, такого как AutoCAD, на ассемблере. Это не было бы особенно весело или продуктивно, и количество ошибок, вероятно, было бы значительным.

3 голосов
/ 28 мая 2010

Нет, нет никаких ограничений на то, что МОЖЕТ быть сделано с ассемблером. Практически полезно написать графический интерфейс, получить доступ к файловой системе, воспроизводить звуки и т. Д. На ассемблере.

2 голосов
/ 28 мая 2010

Раньше я думаю, что несколько компьютерных игр были запрограммированы на ассемблере. Я имею в виду, в частности, игру «Air Traffic Controller», которая вышла для TRS-80 в 1978 году. В ней был пользовательский интерфейс на основе персонажей, звуковые сигналы и немало игровой логики в игре «реального времени» симуляция, которая выполнялась в 4К ОЗУ. Вот ссылка на сайт с некоторой информацией об этой игре, а также скриншот: http://atc.fastie.com/index.htm

...