Pull to refresh

Comments 13

Писать на ассемблере можно но скучно. В итоге всё сводится к вызову функций, лучше бы применять ассемблер по прямому назначению — быстрая реализация алгоритмов которые сложнее написать на ЯВУ чем использовать интересные инструкции ассемблера «срезая углы».

И непонятна ещё одна вещь… КУДА БУДЕТ ВЫВЕДЕН текст из примера? На андроиде программы вроде не консольные, а для вывода текста нужно как минимум место где «рисовать» а программа его не создаёт явно. Всё это скрыто внутри функций реализованных чисто в андроиде?

Например, хорошо бы начать с таких наглядных алгоритмов как вычисление положения солнца и луны. Как бы такое счастье выглядело бы на ассемблере?
КУДА БУДЕТ ВЫВЕДЕН текст из примера?

В консоль adb.
Писать обычные приложения на ассемблере скучно, но он для этого и не предназначен. А вот драйвера и прошивки для контроллеров — очень даже интересно. А если еще углубиться в реверс-инжиниринг и безопасность…
Вобщем-то не так и скучно, на макро-ассемблере. делаешь макро-кирпичики, и пишется не хуже С-шки. Но сложные программы писать будет уже трудно… т.к. как минимум никто вам «кирпичиков» готовых не напишет.
ИМХО, изучать ARM удобнее всего на микроконтроллерах, например stm32. Там по крайней мере всё железо сразу доступно и нет ОС, которая только мешает. Всё программирование под Android — это по сути непрерывная война с ОС, её кривой архитектурой и несовместимостями.
А ещё есть одноплатники вроде RPi, где тоже ARM, но при этом полноценный Linux со всем её инструментарием.
Давайте сразу порт MenuetOS(KolibriOS) на телефон, потом SDK для разработки приложений под нее, ось будет всего 1,44 Мбайт размером, будет просто летать…
UFO just landed and posted this here
Самое главное, что непонятно, зачем на ассемблере, ведь он не для вывода строчек на консоль придуман.
Ничего не хочу сказать, но я это уже видел 22 февраля тут, правда другими словами и от другого переводчика.
Я предлагаю вам заняться этим вплотную и попробовать создать небольшое приложение на ассемблере для вашего устройства. Это может быть простая игра или что-нибудь еще.


Я предлагаю вам написать пример хотя бы создания Activity на ассемблере, тогда можно будет говорить об играх и прочем.
Писать на ассемблере для старших ARM, конечно, некоторый перебор, но вот например на Форт (GForth для Andrioid) автономно вполне возможно.
Вот в нём можно и на встроенном ассемблере что то добавить к Форт-системе и посмотреть дизасемблированный код примитивных слов написанных или транслированных в ассемблер при сборке системы.
www.blogbyben.com/2014/12/more-hand-held-hacking-forth-on-android.html

P.S. Да, в Форт-системах для младших ARM как в коммерческих (Swift Forth, VFX Forth ...) так и свободных системах (например Mecrisp-Stellaris ...) ассемблер вполне штатное средство для использования.
Вот ещё некоторый материал для «затравки» по теме статьи. :)
A Forth interpreter in ARM assembly github.com/gerard/uforth

P.S. Уверен, что подобные примеры применения ассемблера для создания инструмента программирования можно найти ещё.

В применимости ассемблера (без относительно ARM) для серъёзных проектов можно убедится на примере создания ядра рабочей ОС на ассемблере для ПК — KolibriOS.
Sign up to leave a comment.