𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Beginning x64 Assembly Programming: From Novice to AVX Professional

✍ Scribed by Jo Van Hoey


Publisher
Apress
Year
2019
Tongue
English
Leaves
434
Edition
1
Category
Library

⬇  Acquire This Volume

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 beused, 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


Cover
Front Matter
1. Your First Program
2. Binary Numbers, Hexadecimal Numbers, and Registers
3. Program Analysis with a Debugger: GDB
4. Your Next Program: Alive and Kicking!
5. Assembly Is Based on Logic
6. Data Display Debugger
7. Jumping and Looping
8. Memory
9. Integer Arithmetic
10. The Stack
11. Floating-Point Arithmetic
12. Functions
13. Stack Alignment and Stack Frame
14. External Functions
15. Calling Conventions
16. Bit Operations
17. Bit Manipulations
18. Macros
19. Console I/O
20. File I/O
21. Command Line
22. From C to Assembler
23. Inline Assembly
24. Strings
25. Got Some ID?
26. SIMD
27. Watch Your MXCSR
28. SSE Alignment
29. SSE Packed Integers
30. SSE String Manipulation
31. Search for a Character
32. Compare Strings
33. Do the Shuffle!
34. SSE String Masks
35. AVX
36. AVX Matrix Operations
37. Matrix Transpose
38. Performance Optimization
39. Hello, Windows World
40. Using the Windows API
41. Functions in Windows
42. Variadic Functions
43. Windows Files
Back Matter


πŸ“œ SIMILAR VOLUMES


Beginning x64 Assembly Programming From
✍ Jo Van Hoey πŸ“‚ Library πŸ“… 2019 πŸ› apress 🌐 English

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
✍ Jo Van Hoey πŸ“‚ Library πŸ“… 2019 πŸ› Apress 🌐 English

<p>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 As

Beginning x64 assembly programming: from
✍ Hoey, Jo Van πŸ“‚ Library πŸ“… 2019 πŸ› Apress 🌐 English

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

Beginning Ada Programming: From Novice T
✍ Andrew T. Shvets πŸ“‚ Library πŸ“… 2020 πŸ› Apress 🌐 English

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

Beginning Perl Programming: From Novice
✍ William "Bo" Rothwell πŸ“‚ Library πŸ“… 2019 πŸ› Apress 🌐 English

<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

Beginning Ring Programming: From Novice
✍ Mansour Ayouni πŸ“‚ Library πŸ“… 2020 πŸ› Apress 🌐 English

<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