Getting unbuffered keyboard input (e.g., Arrow keys)

Indeed!

No it’s an actual instruction, it means extend the sign when moving from example a byte to 4 byte register.

That situation has nothing to do with the C language. In C you could actually make the int call to the bios directory int86(…). As for not having to wait for and enter key, or any other key for that matter which is more inline with real-time programming. You need to look at ionotify, that mean the OS will send you a message when a key was pressed no need to way or even poll.