инструкций для асма ? может лучше использовать gas под андроид ? просто у арма че-то все перемудрено, когда пишут на с под андроид через ндк, используется же обычный gcc не ?
Частично отличается. Некоторые инструкции и группы инструкций могут отсутствовать. Но разве в x86 не так же?
А нормально если я напишу на асме который под v7 арм, и полученную программу будут использовать на телефоне у которого v9 скажем ? есть обратная совместимость ? Вот у меня еще вопрос, в какой асм компилируется сишний код через gcc для использование с помощью андроид ндк ? в гас под арм ?
Это разная разрядность. Не знаю, запустится ли. Вероятно, будет зависеть от версии андроида. А про компиляторы я не понял. Есть NDK, он кросскомпилятор, там есть gcc/gas, они собирают код под арм. Ты можешь поставить какой-нибудь termux или entware на телефон и оттуда запускать нативные gcc/gas.
Может просто привычнее? Я также смотрел на x86 после PDP11.
Ну под ндк можно использовать си, я просто не знаю какой ассемблер мне учить, чтобы можно было совместить его с ндк, ну явно те которые есть под арм, сам асм от арма, гас который тоже есть под арм, фасм вроде тоже есть под арм, просто захотел узнать как это делает си, чтобы сделать правильно все.
О, друг по GNU Asm'у :3
Стикер
Стикер
Какие интересные заявления. Человеку нужен ассемблер под арм, ему не нужен PE под Windows.
Так это мне а не ему.
Тогда зачем ты FASM сюда приводишь, если он вообще на ARM не нацелен?? Есть и другие лёгкие аналоги FASM, но на ARM. Не обязательно сразу бежать на GAS и мучиться с его ужаснейшим синтаксисом.
Так это я приводил фасм.
https://t.me/ChatAssembler/267605
Чтобы не копировать бинарники через adb каждый раз, когда изменил буковку.
С фега? он сам заявил, что на виндовс 10 хочет писать
Он про меня...
Тогда извиняюсь @s54820. Его нет смысла сравнивать по программированию ИЗ-ПОД других архитектур, он на это не нацелен. На нём ты можешь писать из x86 НА какую-то архитектуру, но не наоборот. Потому что он написан сам на себе, а GAS написан на С. Зато у него есть ряд других преимуществ, и он вовсе не бесполезный.
Потому что спросили про фасм. Потому что есть фасмарм. Потому что в GAS нет ужаснейшего синтаксиса. Он есть только в GAS под для x86.
Я не только про AT&T, потому что это не совсем даже к GAS относится, они просто зачем-то вставили этот синтаксис по-умолчанию. Я про синтаксис директив, им лень было сделать нормальный синтаксис, и чтобы проще было обрабатывать директивы, у них каждая директива начинается с точки 🤯 не говоря про их способности. Лучше взять какой-то лёгкий аналог FASM, написанный под ARM.
.data message: .ascii "Hello world!\n" // данные для вывода Ладно про ".data", пусть даже так. MASM-подобная директива какая-то, но не суть. Что ещё за .ascii?? Почему нельзя было сделать нормальный db? И комментарии почему не через точку с запятой???
msg: db "Hello, world!",13,10,0 msg: .asciz "Hello, world!\r\n"
Ты же не будешь в телефоне буковки менять, это еще сложнее будет когда большое приложение
Короче, скажу что мне нужно чтобы не было срача. 1.Мне нужен ассемблер который можно использовать с андроид ндк, чтобы можно было писать программы на ассемблере и получать их в виде апкашника. 2.Нужно чтобы этим ассемблером можно было обращаться к системе, получать или отдавать "запросы", например запрос на получение текущего времени, запрос например на то чтобы появилось окошко открыть с помощью... , или например получить координаты экрана, на который попал пальцем пользователь, и т.д, максимум взаимодействовать с системой. 3.Чтобы можно было на этом ассемблере рисовать окошки, текст, и т.д например с помощью opengl или вулкан, или еще каким способом. Короче говоря мне нужна альтернатива java в виде ассемблера.
Я отлаживаю нативный код как обычное консольное приложение. Собираю прямо на устройстве, отлаживаюсь в gdb, все дела. Я не предлагаю .apk на устройстве собирать, если что.
Такое вообще реализуемо ? можно надыбать инфы по этим пунктам ? насколько это сложно реализовать ?
Ты вроде не первый раз это справшиваешь. Рисовать/обрабатывать события совершенно без java, да ещё на ассемблере больно. Но ты можешь большую часть функциональности оформить в нативную либу, и уже там делать что угодно. Можешь взять SDL какой-нибудь, будет проще.
Да не первый раз, думаю надо ли оно, вывезу или нет, мне это все для компилятора нужно.
Ну есть же тот же самый винапи который во всех программах на фасме используют, под андроидом же тоже должно быть что-то похожее, мы же когда программы для винди пишем, не с нуля же все делаем, используем готовые макросы.
Под андроидом местный винапи на джаве.
Нужно копать в это сторону мб, вдруг еще найду способ окошки рисовать с помощью апи 😁
Ну а винапи на си же, не в первой, что поделаешь, придется использовать апи который на джаве, другого пути же нету, вот только как этот "меснтый винапи" в асме использовать, интересный вопрос.
https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/jniTOC.html
Кстати я только сейчас понял, если писать приложения используя gas, то они же будут на любой версии андроида, и арма работать.
То есть будет обратная совместимость.
Обратной не будет. Будет в пределах разрядности, пока тебе не нужна плавающая точка.
Обсуждают сегодня