в голову приходит только один случай когда там будет что-то конкретное - это на входе функций с атрибутом __attribute__((regparm(0)))__ (т.н. fastcall функции) там будет второй аргумент переданный этой функции.
Если смотреть на код, который рожает gcc, то видно, что ebx все время
спасается, его значение никогда не теряется. Вот, а в некотором
gcc-compiled коде с помощью ebx добываются какие-то данные, здесь
ebx-то самое постоянное значение, в самом начале функции:
movl 0xc54(%ebx), %eax
movl 0xc40(%ebx), %ecx
и т.д. Мне очень хочется узнать настоящие адреса этих данных, но
программа эта не отлаживаемая. Так вот и интересует, что же такое
таскается в ebx.
не совсем уверен что отвечу на вопрос, но при программировании на Ассм для работы с ядром ОС используется следующий порядок:
Помещаем в EAX указание выполнить системный вызов.
В EBX помещаем дескриптор(идентификатор) этого вызова - т.е. параметр вызова.
Потом сам системный вызов.