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 means: no graphical user
interfaces or whistles and bells or error checking. Adding all these nice features would
distract your attention from the purpose: learning assembly language. The theory is limited to
a strict minimum: 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 book:
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 Learn Discover
how a CPU and memory works Appreciate how a computer and operating system work together See how
high-level language compilers generate machine language and use that knowledge to write more
efficient code Be better equipped to analyze bugs in your programs Get your program working
which is the fun part Investigate malware and take the necessary actions and precautions Who
This Book Is For Programmers in high level languages. It is also for systems engineers and
security engineers working for malware investigators. Required knowledge: Linux Windows
virtualization and higher level programming languages (preferably C or C++).