Book Request!

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
User avatar
Brackets
Posts: 13
Joined: Sun Apr 29, 2007 12:22 pm

Book Request!

Post 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.
User avatar
Alboin
Member
Member
Posts: 1466
Joined: Thu Jan 04, 2007 3:29 pm
Location: Noricum and Pannonia

Post 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.
Last edited by Alboin on Fri Jun 01, 2007 5:32 pm, edited 1 time in total.
C8H10N4O2 | #446691 | Trust the nodes.
User avatar
Brackets
Posts: 13
Joined: Sun Apr 29, 2007 12:22 pm

Post 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 :)
jnc100
Member
Member
Posts: 775
Joined: Mon Apr 09, 2007 12:10 pm
Location: London, UK
Contact:

Post 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.
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Post 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..)
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
User avatar
Alboin
Member
Member
Posts: 1466
Joined: Thu Jan 04, 2007 3:29 pm
Location: Noricum and Pannonia

Post 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.
C8H10N4O2 | #446691 | Trust the nodes.
User avatar
Brackets
Posts: 13
Joined: Sun Apr 29, 2007 12:22 pm

Post 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!
Post Reply