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.
2) You are trying to move the value in memory address 0x7 to the memory address pointed to by %edx - that's a memory-to-memory move, doesn't work. If you want to move the value 0x7, use $WHITE.
Every good solution is obvious once you've found it.
When compilation fails, please could you let us know the exact compiler error you get? I'm not familiar with AT&T syntax, but sometimes the compiler error will give enough clues to help sort it out.
Cheers,
Adam
[immature alert]PS for gas trouble, eating fewer baked beans can really help [/immature alert]