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.
As if a diff would explain the difference between correct and broken code...
What you did was suggesting gcc to fill in the most optimizer-effective registers it could spare (using %1, %0). However, inports and outports work only with one pair of registers: DX and AL/AX/EAX. Since you didnt tell it, it'd try to fill in some random register which would obviously fail the assembly stage.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]