Почему говорят "не пишите программы для linux на ассемблере?
Какой совместимости?
Все асм. программы состоят примерно так:
параметры...
mov eax,[функция]
int 0x80
получить результат..........
И что? Изменятся номера функций с выходом новой версии? Сомневаюсь...
Так почему же ?
Поэтому переходят к языкам высокого уровня: C/C++, Java, и т.д.
Никто не запрещает в C/C++ использовать ассемблерные вставки, если это оправдано целью разработки и предусмотрено ТЗ.
Небольшие демоны для сервера, - вполне, а если нет то почему?
И вообще, какая может быть совместимость, если номера функций то не изменяются.
Конечно что если писать с заточкой на sse3 или 3DNow то понятно что на процессоре в кот. это не поддерживается это не будет работать, но при чем тут сам linux? (Я не помню на каком форуме, но именно говорилось что "вот, линупс, типа ассемблерные программы не совместимы, лучше использовать готовые библиотеки для разработки" )
Еще раз:
Если писать под опред. архитектуру, - да не совместимы, но при чем тут сам linux ? Что с выходом ubuntu server 13.10 изменятся номера функций? Или прерывание станет не 80 а 81? xD
P.S. Согласен с grgdvo
Многоплатформенная - согласен.
Но я ведь не пишу для debian, а завтра захочу запустить его на сковородке tefal.
Подразумевалось x86-x64
Или это:
Это почти тоже что я сказал - "если затачивать под sse или 3dnow..."
Вопрос был:
Я с линуксом знаком не долго, возможно какие-то функции и меняются, поэтому и спрашиваю.
НАПОМНИМ: Имеется ввиду архитектура x86
Создал за последнюю неделю 3 темы, на 2 из них несколько десятков просмотров, - ни одного ответа.
А в этой одна йухня. Не можете дать внятного ответа, не пишите херню.
Спасибо, форумчане!
Создал за последнюю неделю 3 темы, на 2 из них несколько десятков просмотров, - ни одного ответа.
А в этой одна йухня. Не можете дать внятного ответа, не пишите херню.
Спасибо, форумчане!
Тебе никто, ничем, и ничего не обязан. Если не хватает ума понять, что дистрибутивов много, платформы разные и ответ прозвучал в контексте "не писать на ассемблере под Linux", а не "не писать на ассемблере под Linux Debian", то тут любой форум бессилен.
Изначально говорилось о версии а не дистрибутиве
Вот-вот, и я о том же.
Словесным поносом все любят заниматься, а как ответить на вопрос так "да у тебя обострение тупости, да ты не способен понять ..." и т.д. и т.п.
Я же говорю, - до этого создал 2 темы с реальными вопросами, - хер кто помог.
Что-то не заметил по ходу топика, чтобы ты о том же писал. Вопрос, если честно, у тебя идиотский.
Если они были наподобие этой, то я не удивлён.
Какой совместимости?
Все асм. программы состоят примерно так:
параметры...
mov eax,[функция]
int 0x80
получить результат..........
И что? Изменятся номера функций с выходом новой версии? Сомневаюсь...
Так почему же ?
Что в вопросе идиотского? Что не понятно? Что такое прерывания? Или функции?
Какая похер разница какой дистрибутив? Фраза из вопроса: - "Изменятся номера функций с выходом новой версии?"
Походу многие кто тут ответил просто не в теме, ибо 1 из 1000 программирует для линукса, а тем более на асме, тут таких нет, ибо поняли бы о чем я спросил с пол пинка, так как задавался бы точно таким же вопросом.
Следует отметить, что не следует использовать системные вызовы везде, где только можно, без особой необходимости. В разных версиях ядра порядок аргументов у некоторых системных вызовов отличается, и это приводит к ошибкам, которые довольно трудно найти.