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 P
Beginning x64 Assembly Programming: From Novice to AVX Professional
β Scribed by Jo Van Hoey
- Publisher
- Apress
- Year
- 2019
- Tongue
- English
- Leaves
- 407
- Edition
- 1st ed.
- Category
- Library
No coin nor oath required. For personal study only.
β¦ Synopsis
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++).
β¦ Table of Contents
Front Matter ....Pages i-xix
Your First Program (Jo Van Hoey)....Pages 1-12
Binary Numbers, Hexadecimal Numbers, and Registers (Jo Van Hoey)....Pages 13-19
Program Analysis with a Debugger: GDB (Jo Van Hoey)....Pages 21-33
Your Next Program: Alive and Kicking! (Jo Van Hoey)....Pages 35-45
Assembly Is Based on Logic (Jo Van Hoey)....Pages 47-50
Data Display Debugger (Jo Van Hoey)....Pages 51-55
Jumping and Looping (Jo Van Hoey)....Pages 57-66
Memory (Jo Van Hoey)....Pages 67-75
Integer Arithmetic (Jo Van Hoey)....Pages 77-85
The Stack (Jo Van Hoey)....Pages 87-93
Floating-Point Arithmetic (Jo Van Hoey)....Pages 95-100
Functions (Jo Van Hoey)....Pages 101-106
Stack Alignment and Stack Frame (Jo Van Hoey)....Pages 107-111
External Functions (Jo Van Hoey)....Pages 113-119
Calling Conventions (Jo Van Hoey)....Pages 121-131
Bit Operations (Jo Van Hoey)....Pages 133-145
Bit Manipulations (Jo Van Hoey)....Pages 147-151
Macros (Jo Van Hoey)....Pages 153-157
Console I/O (Jo Van Hoey)....Pages 159-166
File I/O (Jo Van Hoey)....Pages 167-180
Command Line (Jo Van Hoey)....Pages 181-184
From C to Assembler (Jo Van Hoey)....Pages 185-194
Inline Assembly (Jo Van Hoey)....Pages 195-201
Strings (Jo Van Hoey)....Pages 203-214
Got Some ID? (Jo Van Hoey)....Pages 215-220
SIMD (Jo Van Hoey)....Pages 221-224
Watch Your MXCSR (Jo Van Hoey)....Pages 225-235
SSE Alignment (Jo Van Hoey)....Pages 237-245
SSE Packed Integers (Jo Van Hoey)....Pages 247-250
SSE String Manipulation (Jo Van Hoey)....Pages 251-257
Search for a Character (Jo Van Hoey)....Pages 259-266
Compare Strings (Jo Van Hoey)....Pages 267-275
Do the Shuffle! (Jo Van Hoey)....Pages 277-288
SSE String Masks (Jo Van Hoey)....Pages 289-306
AVX (Jo Van Hoey)....Pages 307-315
AVX Matrix Operations (Jo Van Hoey)....Pages 317-337
Matrix Transpose (Jo Van Hoey)....Pages 339-352
Performance Optimization (Jo Van Hoey)....Pages 353-369
Hello, Windows World (Jo Van Hoey)....Pages 371-376
Using the Windows API (Jo Van Hoey)....Pages 377-382
Functions in Windows (Jo Van Hoey)....Pages 383-392
Variadic Functions (Jo Van Hoey)....Pages 393-397
Windows Files (Jo Van Hoey)....Pages 399-403
Back Matter ....Pages 405-413
β¦ Subjects
Computer Science; Programming Languages, Compilers, Interpreters; Programming Techniques; Control Structures and Microprogramming
π SIMILAR VOLUMES
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.<br />The code used in<i>Beginning x64 Assem
<span>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. <br>The code used in </span><span>Beg
Discover the Ada programming language by being gently guided through the various parts of the language and its latest available stable release. The goal in this book is to slowly ease you into the different topics. It is understood that you do not always have ample free time, so the text is easy to
<p><p>Get started with Perl 5 and learn the important core concepts of Perl programming, such as variables, flow control, expressions, and I/O. Additionally, this book covers pattern matching and shows that Perl is extremely flexible and powerful, and that it isnβt afraid of the cloud. After reading
<p>Gain a gentle introduction to the world of Ring programming with clarity as a first concern using a lot of practical examples. The first part lays the foundations of the language and its basic features (data types, control structures, functions, and classes). The unique way to rigorously structur