Program in assembly starting with simple and basic programs, all the way up to AVX programming. By the end of this book, you will be able to write and read assembly code, mix assembly with higher level languages, know what AVX is, and a lot more than that. The code used in Beginning x64 Assembly Programming is kept as simple as possible, which no graphical user interfaces or whistles and bells or error checking. Adding all these nice features would distract your attention from the learning assembly language. The theory is limited to a strict a little bit on binary numbers, a short presentation of logical operators, and some limited linear algebra. And we stay far away from doing floating point conversions. The assembly code is presented in complete programs, so that you can test them on your computer, play with them, change them, break them. This book will also show you what tools can be used, how to use them, and the potential problems in those tools. It is not the intention to give you a comprehensive course on all of the assembly instructions, which is impossible in one look at the size of the Intel Manuals. Instead, the author will give you a taste of the main items, so that you will have an idea about what is going on. If you work through this book, you will acquire the knowledge to investigate certain domains more in detail on your own. The majority of the book is dedicated to assembly on Linux, because it is the easiest platform to learn assembly language. At the end the author provides a number of chapters to get you on your way with assembly on Windows. You will see that once you have Linux assembly under your belt, it is much easier to take on Windows assembly.This book should not be the first book you read on programming, if you have never programmed before, put this book aside for a while and learn some basics of programming with a higher-level language such as C.What You Will LearnDiscover how a CPU and memory worksAppreciate how a computer and operating system work togetherSee how high-level language compilers generate machine language, and use that knowledge to write more efficient codeBe better equipped to analyze bugs in your programsGet your program working, which is the fun partInvestigate malware and take the necessary actions and precautionsWho This Book Is ForProgrammers in high level languages. It is also for systems engineers and security engineers working for malware investigators. Required Linux, Windows, virtualization, and higher level programming languages (preferably C or C++).
Genuinely a very decent book for beginners. It is easy to read, and the chapters are short and digestible. While it’s a great starting point, there are a few flaws: some of the code is written in a pretty weird, unconventional way, and a few of the code blocks and comments are actually incorrect. Additionally, the book lacks some depth, though I’m not really complaining, as that's exactly what keeps it light and easy to read.
The overall content is still excellent. I’m giving it a high rating mostly because there aren't many other resources out there that offer a well-structured learning path. It covers (or at least skims) a ton of ground, making it a very quick but informative read.
Great book! This was my first assembly book, and I found the explanations well detailed. The examples presented are also interesting. If you'd like to have a feeling on what is presented, check my GitHub repository: https://github.com/64J0/samples--asse....
P.S.: If this repository is not public, it means that I'm still finishing some details. Check it in the next week then.