ASCII print to stdout (console) in NASM/Linux

Hi, I'm trying to write an assembly programming which multiplies the values stored in two registers, and converts the result to ASCII. I need to know what exactly what it is that I'm doing wrong, as I keep getting segmentation faults and/or floating point exceptions. The comments in the code should explain in detail how I'm trying to accomplish this, but I find that most of my issues keep happening when I try do div edx by eax

Any thoughts? I think I have to actually *initialize* the registers, though I don't quite know how to do that. Thanks.

[b]Code[/b]

[code]section .data counter: db 0xA ;store value 10 in 'counter', while allocating only one byte. This will be used for decrementing purposessection .bss valueToPrint: resb 4 ;alloc 4 bytes of data in 'valueToPrint'