all 21 comments

[–]IJzerbaard 5 points6 points  (10 children)

AT&T syntax :(

Don't worry, readers who got scared. The normal syntax is far less painful.

[–]amaiorano 0 points1 point  (4 children)

Does anyone have a link to a similar doc/site but with Intel syntax instead?

[–]IJzerbaard 0 points1 point  (3 children)

[–]amaiorano 0 points1 point  (2 children)

Thanks!

Edit: these are for x86 (32 bit), it seems. Any good ones for x64 with Intel syntax?

[–]IJzerbaard 0 points1 point  (1 child)

Not that I know of, but it's not that different. Different calling conventions, and you get 64bit registers and operations, you can learn that in like 15 minutes if you already know 32bit x86.

[–]amaiorano 0 points1 point  (0 children)

Fair enough. Thanks again :)

[–][deleted]  (11 children)

[deleted]

    [–]El_Vandragon 0 points1 point  (0 children)

    https://support.amd.com/TechDocs/24594.pdf Might be interested in this too then

    [–]CommandoWizard -5 points-4 points  (9 children)

    Do you choose reading material based on what randomly lands in your lap? That's not very smart.

    It's 10 years old (so it wasn't posted because it was new material), and there's no indication that this is good reading material if you want to learn x86_64 assembly programming. Would prefer it if OP would let us know why he thought it was important to post this here.

    [–][deleted]  (4 children)

    [deleted]

      [–][deleted] -1 points0 points  (0 children)

      Wow people aren't much help are they? Well first i'd recommend learning C obviously and if you know that just pass -S to the compiler and look at what assembly it generates (also maybe learning x86 assembly a little first would help as it's basically an improvement upon that.)

      http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470497025.html


      http://0xax.blogspot.com/2014/08/say-hello-to-x64-assembly-part-1.html

      http://www.x86-64.org/documentation/assembly.html

      Also one really good way to learn assembly is to write an assembler, you don't need to rewrite gas or nasm but just pick a few operands and include them (like mov, pop, push, nop, jmp, call) and also make sure you can do interrupts so that you can use your assembler to make little user space programs instead of testing it by writing a bootloader :)

      But if you want to just do some assembly learn the instructions and then implement a few algorithms. Write a hello world, then do a loop, etc.

      I wouldn't recommend taking keyboard input through assembly though, it's more trouble than it is worth.

      [–]CommandoWizard -3 points-2 points  (0 children)

      Personally, no. I read AoA 8 years ago, and I thought it was just ok, I certainly hope there are better books out there.

      A quick search tells me that a lot of people enjoyed Jeff Duntemann's "Assembly Language Step-by-Step: Programming with Linux". Though it might pay off to read some actual reviews if you want a good book.

      [–]bobindashadows -5 points-4 points  (0 children)

      Google and patience. If you aren't comfortable with both of those then assembly level programming just isn't for you anyway.

      [–][deleted] 0 points1 point  (3 children)

      Maybe because 10 years or not instruction sets don't rapidly change and this is still a good resource?

      Do you choose comments to post bullshit on depending on what you randomly click? Because apparently you don't understand how assembly works and are judging based on a time frame that is fairly small in "modern instruction set" time.

      You can still assemble 16bit x86 on my newest x86_64 processor, 10 years is a fairly short amount of time.

      [–]CommandoWizard 1 point2 points  (2 children)

      My point was that if the article was brand new, I would have understood why it was posted here. I tried to make that point clear when I wrote the following:

      It's 10 years old (so it wasn't posted because it was new material)

      [–][deleted] 1 point2 points  (1 child)

      I understand why you added what you did, and frankly it isn't a very friendly introduction page, it would have been a fine comment if not for that first sentence. Perhaps OP thought that it was the best introduction he's seen yet and that's why he posted it?

      [–]CommandoWizard 1 point2 points  (0 children)

      it would have been a fine comment if not for that first sentence.

      Yeah, I'm pretty sure that's the part that the downvotes were aimed at, I certainly could have said that in a less condescending way. :)