Not perfect but can be pretty useful (especially to compare compiler output):
http://gcc.godbolt.org/
Example:
int square(int num) {
return num * num;
}
square(int):
pushq %rbp
movq %rsp, %rbp
movl %edi, -4(%rbp)
movl -4(%rbp), %eax
imull -4(%rbp), %eax
popq %rbp
ret