Does any body know where I can documentation for using YASM in the 64-bit mode?
I am able to create a 64-bit assembly file and Link it to A Windows 64 console mode app.
I pass information back and forth but, I cannot access a local data variable declared with
.data section. I have tried all the standard methods, but with no success.
THanks
I do a litle search, specially I find this http://cvs.tortall.net/pipermail/yasm-announce/2004-October/000002.html is the anouncement, there say in the "know isues" something about changin the machine...
Quote
Known issues:
- Changing the machine to "amd64" does not automatically default to bits
64 mode; specify BITS 64 in the assembly source as a workaround.
I supose than the flag at command line -m amd64 dosent work...
But you can still add bits 64 at the start of the file....
Perhaps this can help:
bits 64
section .data
label1 dq 0x123456789abcdef0
section .code
mov rax, 123
mov rax, [label1]
mov ax, 123
mov ax, [label1]
bits 32
;mov rax, 123
;mov rax, [label1]
mov ax, 123
mov ax, [label1]
assemble it with yasm -f elf -l l64.txt 64.asm
You can watch the list file l64.txt, you will see how bits 64 and bits 32 affect the output...
Browse more the site of yasm, also you can join the mailing list and for example request the author for sources... or something like that... :).
By the way, something that I was missing is that rax and all the others hae no meaning in 32 or 16 bits, then you will see a warning if you uncomment those two comments in that file.