В моя C код има някои вградени сборки, извикващи PCI BIOS услуга. Сега проблемът е, че един от резултатите се връща в регистъра %ah
, но не мога да намеря константа, която да се отнася до този регистър.
Това, което искам е да напиша следното:
asm("lcall *%[call_addr]" : "something here"(status) :);
и променливата status
съдържа стойността на %ah
регистър.
Ако използвам "=a"(status)
и добавя mov %%ah, %%al
инструкция, ще работи. Но изглежда грозно.
Някакви предположения?