мы довольно забавно обменялись очевидными фактами
Предположим, что надо написать Once только с двумя значениями (WasNotCalled = 0, WasCalled = 1). Для метод call может использовать swap и вернуть предыдущее значение. Но какой порядок нужно использовать в этом swap?
int scan_code = 0;
asm(
"push %%eax\n"
"xor %%eax, %%eax\n"
"in $0x60, %%al\n" // принимаю сканкод
"movl %%eax, -12(%%ebp)\n"
"pop %%eax\n"
:
:
:
);
unsigned char scan_code = 0;
asm(
"in $0x60, %0" // принимаю сканкод
: "=a"(scan_code)
:
:
);
После этого ядро стало выдавать ошибку
qemu-system-x86_64 -kernel kernel-10 -nographic -serial stdio -monitor none -append 'console=ttyS0'
но ты лучше напиши сам и подробно. какие вопросы можно было бы задать модели, что бы и ответ не подсказать и понять, на сколько глубоко она понимает это?
Я не могу увидеть что вызвало проблему.
sd_kcode:
dd 0x0000ffff
db 0x00
db 0x8a
db 0xcf
db 0x00
dd 0x0000ffff
db 0x00
db 0x9a
db 0xcf
db 0x00
rPman, не может оптимизатор выкинуть вызов функции о которой ничего неизвестно.