Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Are you converting the values you receive from keyboard scancodes to character codes? Also it doesn't look like you are storing the value you receive anywhere.
Okay well in real mode the BIOS handles the keyboard, so as soon as the key gets pressed IRQ1 is fired and the BIOS reads the scancode. You could maybe map IRQ1 to an empty function.
what are the values after 'in' instruction from different keys? print them on the screen and tell us. How does int37 gets called? after which event? no magicians here.
You could use:
xor ax, ax
int 16h
to wait for key to be pressed