assembler linux



Автор Андрей Меньшаков задал вопрос в разделе Другие языки и технологии

ассемблер под линукс и под виндовс различаются и чем? и получил лучший ответ

Ответ от Миоко Таканава[гуру]
Ассемблер в бóльшей степени зависит от процессора. Но это если писать программу, работающую просто так, не получающую входных данных и не выводящую никуда результат своей работы.
Например, программы для процессоров Intel/AMD и ARM будут разительно отличаться друг от друга, даже написанные для родственных операционных систем: Linux на IBM PC-совместимом и Android (если не ошибаюсь, ОС на базе Linux-ядра) .
А если пишется программа, которая получает откуда-то входные данные и выводит результаты работы на какое-либо устройство, то неизбежно придётся обращаться к услугам операционной системы.
К слову сказать, в MS DOS это делать не обязательно. Можно напрямую взаимодействовать с аппаратурой. Эта операционная система не протестует против прямой работы с оборудованием.
Но в современных ОС: и в Windows, и Linux прямое обращение к ресурсам железа из пользовательских программ невозможно из-за разграничения прав доступа.
Поэтому для общения с пользователем и с внешними устройствами используются системные вызовы. В Windows – это прерывание с номером 2Eh, в Linux – 80h (в MS DOS для системных нужд используется прерывание 21h).
Прикладные программы Windows в подавляющем большинстве не используют системные вызовы, обращаясь к операционной системе с помощью функций API, находящихся в системных динамических библиотеках (DLL). В Linux тоже часто используют библиотечные функции из файлов c расширением .so вместо и вместе с системными вызовами.
А API-функции в разных операционных системах в общем случае имеют разные имена и разные соглашения о передаче параметров и возвращении результата выполнения. Для ассемблера это выливается в загрузке аргументов функций для каждой ОС в разные регистры или размещение в стеке в разном порядке. При использовании системных вызовов, кстати, тоже различие не только в номере прерывания, но и в различном назначении регистров.
Различается синтаксис программ, написанных для разных компиляторов. Главным образом различается написание директив и макросов, но это не является отличительной особенностью программ для той или иной операционной системы.
А различные нотации написания команд процессора (Intel и AT&T) с появлением кроссплатформенных компиляторов – это уже история и не зависит от ОС. GAS и YASM поддерживают обе нотации и в Windows, и в Linux. FASM и NASM в обеих операционках поддерживают только нотацию Intel.
Например:
И два в одном:
Кстати, по последней ссылке наглядный вам пример, как сильно отличается одна и та же программа, написанная для Linux и Windows даже для одного и того же компилятора.

Ответ от Алексей Меркулов[гуру]
Ассемблер не имеет привязки к операционке - это наверное единственный язык напрямую работающий с железом и отличия версий идут относительно процессора т. е. например ZX spectrum, 8080, 80286, 80386, 80486, Pentium I, Pentium I MMX, и т. д.

Ответ от Александр Котов[гуру]
оличется результатом работы линкера
ну и используемыми системными функциями (если не хочешь получить программу которая никак и ни счем не взаимодействует)

Ответ от Антон ФАГ[гуру]
Нотации
Linux - Unix - AT&T Labs
DOS - Windows - Intel

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: ассемблер под линукс и под виндовс различаются и чем?
спросили в Free software Slackware
Подскажите, как запустить YASM в UBUNTU.
ну да. на оффсайте сырцы. качаешь,
./configure
make
make install
молодец
подробнее...

Assembler с нуля
Вам, прежде всего, нужна среда программирования Fresh IDE.
В ней можно писать на FASM'е
подробнее...
спросили в 176 год AT T
В каком году появилась операционная систем LINUX, и кто является ее прямым создателем
Linux (Линукс) — ядро операционной системы, разработка которого была начата финским студентом
подробнее...

Помогите с GSS Visual Assembler 3.9.8
Но у вас же нет самой программы. Ни одной исполняемой команды в вашем листинге не наблюдается.
подробнее...

Нужна программа на Ассемблере [Assembler, SOS =D]
1ая. SASM IDE (NASM + макросы для вывода), на базе Linux, но с миним. переделками заработает в
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:

Что такое Linux и с чем его едят ?
Linux - это ОС, развивающаяся параллельно ms.Windows. Только созданием Линукса занимаются
подробнее...
спросили в Sql
посоветуйте книгу по Microsoft SQL Server 2005 - 2008 для начинающего.
>> C#, Delphi, Assembler и т. д.
Знать надо как можно меньше языков, но как можно глубже.
подробнее...
спросили в Музыка Bacardi
лучшие Рок песни
Five Finger Death Punch - No One Gets Left Behind
Five Finger Death Punch - The Bleeding
подробнее...
спросили в User bug User gub
подскажите что такое калибровка вариатора, в чём она заключается?
Процедура калибровки стартового сцепления вариатора
Внимание:
Когда возникает любая из
подробнее...
спросили в Язык Языки
Какой язык программирования учить первым?
Советую C, даже если ты школьник.
Синтаксис не намного сложнее, чем Pascal. Зато потом другие
подробнее...
спросили в Toyota Prius
помогите пожалйста,перевод на"деловом английком"
Directors should go for a dinner together
2. The faksimalnoe message should be received
подробнее...
спросили в Dirt 4 Halo
Помогите написать программу на ассемблере "Hello world" и прокоментировать каждую строчку!!!
Вы не можете найти правильную программу, потому что ищете, не задавшись очень важными для
подробнее...

Помогите перевести текст с русского на английский..очень надо
Hippy culture - one of the most famous ancient dvizheniy.Hippi soft and not aggressive. As you
подробнее...
спросили в Ассемблер
AT&T ассемблер. Дайте ссылки на мануалы, а то загуглился уже до посинения, но нашел только для Intel ассемблера.
Плохо гуглите, товарищ. Я хоть и знаком только с intel-синтаксисом, но, . Помочь больше не могу,
подробнее...
GNU Assembler на Википедии
Посмотрите статью на википедии про GNU Assembler
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*