У меня есть любопытный случай, когда регистр ebx вызывает segfault, когда я выполняю какую-либо операцию записи на нем.Я не могу понять, почему.Есть ли ограничение в регистре ebx, где я не могу его использовать?Я попытался использовать другие регистры с этим алгоритмом, и он функционирует.Только когда я использую регистр ebx, я получаю ошибку сегментации.Я использую архитектуру x86-32, синтаксис Intel со стилем GCC встроенного кода сборки.
//code (c)opyright Daniel (Robin) Smith
#include <iostream>
int main ()
{
int s, i;
[redacted]
asm (
"\n"
[redacted]
" call series\n"
" jmp finished\n"
"series:\n"
" push ebp\n"
" mov ebp,esp\n"
" mov ebx,0x1\n"
[redacted]
"series_exit:\n"
" leave\n"
" ret\n"
"finished:"
:"=a"(s)
:"a"(i)
);
[redacted]
}