Cantitate/Preț
Produs

Beginning x64 Assembly Programming

Autor Jo Van Hoey
en Limba Engleză Paperback – 31 oct 2019

Observăm că Beginning x64 Assembly Programming se adresează programatorilor cu experiență în limbaje de nivel înalt, inginerilor de sistem și specialiștilor în securitate care doresc să descifreze mecanismele interne ale procesorului. Jo Van Hoey propune o metodologie pragmatică: elimină orice element care ar putea distrage atenția — cum ar fi interfețele grafice sau rutinele complexe de error-checking — pentru a izola logica pură a limbajului de asamblare. Ca și Daniel Kusswurm în Modern X86 Assembly Language Programming, autorul distilează experiență reală în principii acționabile, punând un accent deosebit pe utilizarea seturilor de instrucțiuni SIMD și AVX pentru procesarea eficientă a datelor.

Notăm cu interes structura granulară a celor 39 de capitole, care ghidează cititorul printr-o progresie tehnică riguroasă. Primele secțiuni fundamentează utilizarea registrelor și a debugger-ului gdb, evoluând rapid spre concepte critice precum alinierea stivei (stack alignment), convențiile de apelare și operarea cu macrocomenzi. Subliniem faptul că autorul a ales Linux ca platformă principală de studiu datorită simplității sale inerente pentru asamblare, oferind totodată punțile necesare pentru aplicarea acestor cunoștințe în mediul Windows. Spre deosebire de manualele tehnice exhaustive ale producătorilor de hardware, acest volum de la Apress oferă programe complete, gata de a fi testate și modificate, facilitând o înțelegere intuitivă a modului în care compilatoarele traduc codul C în instrucțiuni mașină.

Citește tot Restrânge

Preț: 22345 lei

Preț vechi: 27932 lei
-20%

Puncte Express: 335

Carte disponibilă

Livrare economică 30 aprilie-14 mai


Specificații

ISBN-13: 9781484250754
ISBN-10: 1484250753
Pagini: 436
Ilustrații: XIX, 413 p. 114 illus., 1 illus. in color.
Dimensiuni: 178 x 254 x 24 mm
Greutate: 0.82 kg
Ediția:1st edition
Editura: Apress
Locul publicării:Berkeley, CA, United States

De ce să citești această carte

Recomandăm această carte dezvoltatorilor care vor să scrie cod mai performant și inginerilor care investighează malware. Veți câștiga o înțelegere profundă a interacțiunii dintre CPU și sistemul de operare, învățând să utilizați instrucțiuni avansate precum AVX pentru optimizarea calcului numeric. Este un instrument esențial pentru oricine dorește să treacă dincolo de abstractizarea limbajelor de nivel înalt și să stăpânească arhitectura x64.


Despre autor

Jo Van Hoey este un autor specializat în literatura tehnică de nișă, axată pe arhitectura sistemelor de calcul și programarea low-level. Prin lucrările sale publicate la Apress, acesta se concentrează pe demistificarea conceptelor complexe de hardware și software, oferind ghiduri practice pentru programatorii care doresc să înțeleagă ce se întâmplă 'sub capotă'. Experiența sa în predarea limbajului de asamblare este reflectată în stilul concis și orientat către rezultate, prioritizând întotdeauna claritatea codului și aplicabilitatea imediată în analiza sistemelor.


Descriere scurtă

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++).


Cuprins

1. Your First Program: "hello, world".- 2. Binary numbers, hexadecimal numbers and registers.- 3. Program Analysis with a Debugger: gdb.- 4. Your Next Program: Alife 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. Macros.- 18. Console I/O.- 19. File I/O.- 20. Command Line Arguments.- 21. From C to Assembler.- 22. Inline assembler.- 23. Strings.- 24. Got some ID?.- 25. SIMD.- 26. Watch your MXCSR.- 27. SSE.- 28. SSE Packed Integers.- 29. SSE String manipulation.- 30. Search a String for a Character.- 31. Compare Strings.- 32. Do the Shuffle.- 33. SSE String Masks.- 34. Advanced Vector Extensions - AVX.- 35. AVX matrix operations.- 36. Matrix Transpose.- 37. Performance Optimization.- 38. Hello, Windows World.- 39. Using the Windows API.- 40. Using a Window.- 41. Windows Argument Passing.- 42. Variadic functions.- 43. Windows Files.- Afterword. Where to go from here?.

Notă biografică

Jo Van Hoey has 40 years of experience in IT, in diverse functions, multiple IT companies, and multiple computing platforms. He recently retired from IBM, where he was a mainframe software account manager. He has always been interested in IT security and knowledge of assembly language is an essential skill in defending IT infrastructure against attacks and malware. 


Caracteristici

Contains simple programs and schemes to show how complicated assembly instructions work Starts with the easy parts and goes up to the more complex AVX instructions Introduces open source tools that make assembly programming more accessible