I’m new here same as I’m new with assembly. I hope that you can help me to start.
I’m using 32bit (i686) Ubuntu to make programs in assembly, using gcc compiler.
I know that general-purpose-registers are 32bit (4 bytes) max, but what when I have to operate on 64 bit numbers? Intel’s instruction says that higher bits are stored in %edx and lower in %eax
Great…
So how can I do something with this 2-registers number? I have to convert 64bit dec to hex, then save it to memory and show on the screen.
How to make the 64bit quadword at start of the program in .data section?
EDIT:
When I defined global variable llu (long long unsigned) in C and compiled to assembly it made:
.data
a:
.long <low bits>
.long <high bits>
It is because the parameters are saved in the stack backwards or something more?
long longnumbers (which have64-bits on Linux/ix86).
gcc -S t.c.After several iterations, you should have a good handle on what you need to do in assembly.