Код, который вы пытаетесь собрать, не является хорошим способом создания каталога.Он специфичен для 32-битных процессоров x86 и не может собираться или работать на процессорах ARM, которые есть практически на всех устройствах Android.Он глючит, потому что не может объявить, что он забивает регистр EAX, и глупо использовать операнд вывода памяти и писать собственное хранилище mov вместо того, чтобы просто указывать компилятору, где он может найти результат (в EAX с "= a" (RET)).
Если этот фрагмент кода на ассемблере является единственным способом создания каталога в C, который вам известен, то вам необходимо изучить обычный способ выполнения этого в C.Это будет хорошо работать на достаточно современных версиях Android (начиная с версии 5.0 и выше, я никогда не видел ничего более старого), на каком бы процессоре они ни работали, а также практически на любой операционной системе UNIX.Его легче читать и поддерживать, и он не имеет значительных потерь в скорости.Вот простой пример:
#include <sys/stat.h>
void make_dir() {
char *dir = "./test_asm";
int mode = 0777;
if (0 != mkdir( dir, mode)) {
printf( "Directory creation failed\n");
}
}
Вызов mkdir и его возвращаемое значение объясняются более подробно практически в любой книге по Си и в документации любого достойного набора инструментов разработчика.