Page 1 of 1
Book Request!
Posted: Fri Jun 01, 2007 3:45 pm
by Brackets
Hello everyone, I've downloaded all of AMD's AMD64 related documentation and have trolled around Amazon for a while but the typical searches come up empty. Can anyone recommend a book for learning assembly for the x64 architecture (NASM-centric if possible)? Almost all of the books I can find on Amazon are related to Intel so I haven't had much luck yet. If you can find any please let me know! Thanks for the help.
Posted: Fri Jun 01, 2007 4:18 pm
by Alboin
64 bit AMD's and Intel's use the same instruction code. (Except for that one 64 bit Intel processor...don't recall the name.)
Moreover, 32 bit and 64 bit assembly syntaxes are pretty much the same, except for some added registers, and other PC changes specific to 64bit address spaces.
Just any tutorial on the web should be enough.
This one's not bad.
Posted: Fri Jun 01, 2007 4:27 pm
by Brackets
Excellent! In that case, I'll select the best NASM-centric assembly book I can find, regardless of whether it is x86 or x64!... Just in case though, I'll wait for a while for a response to verify this
Posted: Fri Jun 01, 2007 4:55 pm
by jnc100
Brackets wrote:Just in case though, I'll wait for a while for a response to verify this
Consider it verified.
@Alboin that's quite a good introduction. I hadn't seen it before, thanks for the link.
It doesn't go into os-specific code like lgdt and so on but you can get those from the Intel/AMD manuals anyway.
Regards,
John.
Posted: Fri Jun 01, 2007 5:03 pm
by Brynet-Inc
AMD originally made the 64bit extensions to the x86 architecture (AMD64), Intel originally planned to go in a different direction but later decided instead to implement AMD's extensions into their own products.
Recent Intel and AMD "x86-64" processors are mostly compatible.. It's why you only normally see a single 64bit port of an OS.
So yes, They are both binary compatible.. opcode compatible.. and share the same instruction set (
To some extent..).
There might be a few implementation specific differences though.. Someone more qualified might be able to clear that up.
This also seems to have some useful information:
http://en.wikipedia.org/wiki/X86-64
(
And Alboin sums most of it up..)
Posted: Fri Jun 01, 2007 5:45 pm
by Alboin
Brackets wrote:Excellent! In that case, I'll select the best NASM-centric assembly book I can find, regardless of whether it is x86 or x64!...
A 32 bit book should be fine, just remember that there are some differences between 32 and 64 bits. (ie. Registers being one: rax, rbx, etc.) Although, once you know the basics of assembly language, the Intel\AMD (They're about the same regarding their information.) manuals should be able to give you the details.
Posted: Fri Jun 01, 2007 7:17 pm
by Brackets
Thanks again everyone. This is by far one of the best forum/communities I have seen or been a part of as far as helpfulness and politeness when dealing with new/uninformed members. Keep up the amazing work and I can't wait to become a larger contributor!