Machine and assembly languages are used by the computer programmers to communicate with the computer. Similar to other programming languages, these two uses coded syntax which commands the computer to perform and process data. To help you learn more about the two languages, here we bring to you 8 absolutely free ebooks. Happy reading!
1. x86 Disassembly: Exploring C, x86 Assembly, and Machine Code
Author(s) Wikibooks Contributors
Publisher: CreateSpace Independent Publishing Platform (September 15, 2011), eBook (update continuesly)
The purpose of the book is to help the reader understand better about the relationship between x86 machine code, x86 Assembly Language, and the C Programming Language. As the introduction of the book says, “This book is going to look in-depth at the disassembly and decompilation of x86 machine code and assembly code. We are going to look at the way programs are made using assemblers and compilers, and examine the way that assembly code is made from C or C++ source code. Using this knowledge, we will try to reverse the process. By examining common structures, such as data and control structures, we can find patterns that enable us to disassemble and decompile programs quickly.”
2. The Art of Assembly Language
Author(s) Randall Hyde
Publisher: No Starch Press; 1 edition (September 2003); 2 edition (March 22, 2010)
This book is aimed towards the high level programmers and ideal for you if you are willing to write meaningful programs in least of time. The High Level Assembler (HLA) that comes in the book helps you to write portable assembly language programs which can run under both Linux or Windows simple with a recompile.
3. Assembly Language Succinctly
Author(s) Chris Rose
Publisher: Syncfusion Inc. (2013)
The book helps the reader understand how to write x64 assembly for modern CPUs. The book gradually processes from writing inline assembly for 32-bit applications, to writing native assembly meant for the C++ projects. As the introduction of the book says, “You’ll learn the basics of memory spaces, data segments, CISC instructions, SIMD instructions, and much more.
Whether you’re working with Intel, AMD, or VIA CPUs, you’ll find this book a valuable starting point since many of the instructions are shared between processors.”
4. Programming from the Ground Up: using Linux Assembly Language
Author(s) Jonathan Bartlett
Publisher: Bartlett Publishing (July 1, 2004)
The book makes use of Linux assembly language in order to explain the most important concepts of programming to the newbie programmers. According to the book’s introduction, it is a step-by-step guide that takes you through the concepts like, “how the processor views memory, how the processor operates, how programs interact with the operating system, how computers represent data internally, how to do low-level and high-level optimization and how their computer really works.”