An Introduction to x86_64 Assembly Language
hackeradam17.com
An Introduction to x86_64 Assembly Language
1–10 of 56 posts
Re: An Introduction to x86_64 Assembly Language
#2Re: An Introduction to x86_64 Assembly Language
#3This could be of interest to someone: http://www.pentesteracademy.com/course?id=7
Re: An Introduction to x86_64 Assembly Language
#4What I've found with most assembly language textbooks and online resources is that while the basics get covered well enough, the fundamental knowledge base is often skimmed over, as are the many assumptions and conventions that are made in how the CPU is supposed to work.
I first learned 8086 assembler from Peter Norton's book (http://www.amazon.com/Peter-Nortons-Assembly-Language-Book/d...), and more than any other resource, that taught me about how things actually work. It goes beyond just knowing the registers and the mnemonics and explains in a fantastically clear way all the implicit work that's going on behind the scenes, even in assembly code. From the stack to data segments and direct video control, I learned more about how computers work from this book than from my entire college Computer Science program. And I didn't even have an assembler to actually try any of the code at the time I read it.
I'm not sure if the book would still hold up from a practical perspective, as it does focus very much on MS-DOS-specific interrupts. So what I wonder is... is there a similar resource available today for learning what's going on behind the scenes in the modern 64-bit CPU on modern OSes?
Re: An Introduction to x86_64 Assembly Language
#5* Dr Paul Carter's tutorial [2]
* Intel processor reference [3]
* C ABI standard [4]
[1] https://github.com/wedesoft/aiscm
[2] http://www.drpaulcarter.com/pcasm/
[3] http://www.intel.com/content/www/us/en/processors/architectu...
Re: An Introduction to x86_64 Assembly Language
#6This is a great resource, and the following is not a criticism, but an observation. What I've found with most assembly language textbooks and online resources is that while the basics get covered well enough, the fundamental knowledge base is often skimmed over, as are the many assumptions and conventions that are made in how the CPU is supposed to work. I first learned 8086 assembler from Peter Norton's book ( http:…
https://web.archive.org/web/20110713081927/http://siyobik.in... (anyone know of a mirror? this was nice)
Re: An Introduction to x86_64 Assembly Language
#7Re: An Introduction to x86_64 Assembly Language
#8This is a great resource, and the following is not a criticism, but an observation. What I've found with most assembly language textbooks and online resources is that while the basics get covered well enough, the fundamental knowledge base is often skimmed over, as are the many assumptions and conventions that are made in how the CPU is supposed to work. I first learned 8086 assembler from Peter Norton's book ( http:…
http://www.agner.org/optimize/#manuals http://ref.x86asm.net/ http://www.sandpile.org/ https://web.archive.org/web/20110713081927/http://siyobik.in... (anyone know of a mirror? this was nice)
Re: An Introduction to x86_64 Assembly Language
#9Re: An Introduction to x86_64 Assembly Language
#10personally i had all these books and never really cared too much about them in the end is was having a c compiler and a good disassembler - ida at that time - that made me learn it.
here's the free copy of ida 5 [2]. i think it doesn't do 64 bit, but it's good enough, and works perfectly fine in wine on both osx and linux. you can always use biew/hiew/olly etc, or more recently hopper, but i think for learning ida is still hands down the best choice
do a string copy see what it does. make a function notice how it always starts with
push ebp
mov ebp, esp
...
pop ebp
ret
make a switch statement, see what it compiles too(ida annotates it beautifully).i commend the author for what he's doing. a little improvement would be to reduce some of the text, and add some more examples, and some guidance on how to experiment.
another sidenote is that the code is basically the same as simple c code. c++ code even doing simple things, depending on what you link, and compile in, can be terribly confusing for a newbie to look at.
[1] http://portal.aauj.edu/portal_resources/downloads/programmin...
[2] https://www.hex-rays.com/products/ida/support/download_freew...