问题 I'm using i686 gcc on windows. When I built the code with separate asm statements, it worked. However, when I try to combine it into one statement, it doesn't build and gives me a error: unsupported size for integer register . Here's my code u8 lstatus; u8 lsectors_read; u8 data_buffer; void operate(u8 opcode, u8 sector_size, u8 track, u8 sector, u8 head, u8 drive, u8* buffer, u8* status, u8* sectors_read) { asm volatile("mov %3, %%ah;\n" "mov %4, %%al;\n" "mov %5, %%ch;\n" "mov %6, %%cl;\n"