• Complain

Hoey - Beginning x64 assembly programming: from novice to AVX professional

Here you can read online Hoey - Beginning x64 assembly programming: from novice to AVX professional full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. City: New York;NY, year: 2019, publisher: Apress, genre: Home and family. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Hoey Beginning x64 assembly programming: from novice to AVX professional
  • Book:
    Beginning x64 assembly programming: from novice to AVX professional
  • Author:
  • Publisher:
    Apress
  • Genre:
  • Year:
    2019
  • City:
    New York;NY
  • Rating:
    4 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Beginning x64 assembly programming: from novice to AVX professional: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Beginning x64 assembly programming: from novice to AVX professional" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

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 inBeginning x64 Assembly Programmingis 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++).

Beginning x64 assembly programming: from novice to AVX professional — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Beginning x64 assembly programming: from novice to AVX professional" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Contents
Landmarks
Jo Van Hoey Beginning x64 Assembly Programming From Novice to AVX - photo 1
Jo Van Hoey
Beginning x64 Assembly Programming
From Novice to AVX Professional
Jo Van Hoey Hamme Belgium Any source code or other supplementary material - photo 2
Jo Van Hoey
Hamme, Belgium

Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the books product page, located at www.apress.com/9781484250754 . For more detailed information, please visit www.apress.com/source-code .

ISBN 978-1-4842-5075-4 e-ISBN 978-1-4842-5076-1
https://doi.org/10.1007/978-1-4842-5076-1
Jo Van Hoey 2019
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein.
Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
Introduction

Learning to program in assembly can be frustrating, not in the least because it is an unforgiving language; the computer will yell at you on every possible occasion. And if it doesnt, you may just have unknowingly introduced a hidden bug that will bite you later in your program or at execution time. On top of that, the learning curve is steep, the language is cryptic, the official Intel documentation is overwhelming, and the available development tools have their own peculiarities.

In this book, you will learn to program in assembly starting with simple programs and moving all the way up to Advanced Vector Extensions (AVX) programming. By the end of this book, you will be able to write and read assembly code, mix assembly with higher-generation languages, understand what AVX is, and more. The purpose of this book is to show you how to use assembly language instructions. This book is not about programming style or code performance optimization. After you have acquired basic knowledge of assembly, you can continue learning how to optimize your code. 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.

All the code used in this book can be accessed via the Download Source Code link at www.apress.com/9781484250754 . The code used in this book is kept as simple as possible, which means no graphical user interfaces or bells and whistles or error checking. Adding all these nice features would deviate our attention from the purpose: to learn assembly language.

The theory is kept 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. If you need to convert binary or hexadecimal numbers, find a web site that does that for you. Dont waste your time doing the calculations manually. Stick to the purpose: learning assembly.

The assembly code is presented in complete programs so that you can test them on your computer, play with them, change them, break them....

We will also show you what tools can be used, how to use them, and the potential problems in those tools. Having the right tools is essential to overcoming the steep learning curve. At times we will point you to books, white papers, and web sites that can be useful or that give more details.

It is not our intention to give you a comprehensive course on all of the assembly instructions. That is impossible in one book (look at the size of the Intel manuals!). We 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 in more detail on your own. When you have finished this book, you will be able to study the Intel manuals and (try to) make sense of their content.

The majority of the book is dedicated to assembly on Linux, because it is the easiest platform to learn assembly language. At the end, we provide 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.

There are a number of assemblers available for use with Intel processors, such as FASM, MASM, GAS, NASM, and YASM to name a few. We will use NASM as in this book, because it is multiplatform; it is available on Linux, Windows, and macOS. Also, it has a relatively large user base. But dont worry, once you know one assembler, it will be easy to adopt another assemblys dialect.

We have carefully written and tested the code used in this book. However, if there are any typos in the text or bugs in the programs, we do not take any responsibility. We blame them on our two cats, who love to walk over our keyboard while we are typing.

The ideas and opinions we present in this book are our own and dont necessarily represent IBMs positions, strategies, or opinions.

Before You Start
You should know some basic things before you start reading this book.
  • You should know how to install and manage virtualization software (VMware, VirtualBox, or similar) . If you dont have a clue what that means, download the free Oracle VirtualBox software ( https://www.virtualbox.org ), install it, and learn to use it by installing, for example, Ubuntu Desktop Linux as a guest operating system (OS). Virtualization software allows you to install different guest operating systems on your main machine, and if you mess things up in the guest system, you can delete that guest system and reinstall it. Or if you have taken a snapshot, you can return to a previous version of your guest installation. In other words, theres no harm to your main (host) operating system when experimenting. There are plenty of resources on the Internet explaining VirtualBox and other virtualization software solutions.

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Beginning x64 assembly programming: from novice to AVX professional»

Look at similar books to Beginning x64 assembly programming: from novice to AVX professional. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Beginning x64 assembly programming: from novice to AVX professional»

Discussion, reviews of the book Beginning x64 assembly programming: from novice to AVX professional and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.