13 Best Assembly Language Programming

List Updated June 2020

Bestselling Assembly Language Programming in 2020


Assembly Language Step-by-Step Third Edition

Assembly Language Step-by-Step Third Edition
BESTSELLER NO. 1 in 2020
  • John Wiley Sons

Modern X86 Assembly Language Programming: 32-bit, 64-bit, SSE, and AVX

Modern X86 Assembly Language Programming: 32-bit, 64-bit, SSE, and AVX
BESTSELLER NO. 2 in 2020
  • Apress

Low-Level Programming: C, Assembly, and Program Execution on Intel® 64 Architecture

Low-Level Programming: C, Assembly, and Program Execution on Intel® 64 Architecture
BESTSELLER NO. 3 in 2020

ARM Assembly Language Programming & Architecture (ARM books) (Volume 1)

ARM Assembly Language Programming & Architecture (ARM books) (Volume 1)
BESTSELLER NO. 4 in 2020

MIPS Assembly Language Programming

MIPS Assembly Language Programming
BESTSELLER NO. 5 in 2020
  • Paperback: 168 pages
  • Publisher: Pearson (June 7, 2003)
  • ISBN-10: 0131420445
  • ISBN-13: 978-0131420441

Assembly Language for x86 Processors (7th Edition)

Assembly Language for x86 Processors (7th Edition)
BESTSELLER NO. 6 in 2020

Modern Assembly Language Programming with the ARM Processor

Modern Assembly Language Programming with the ARM Processor
BESTSELLER NO. 7 in 2020
  • Newnes

Assembly Language: Simple, Short, and Straightforward Way of Learning Assembly Programming

Assembly Language: Simple, Short, and Straightforward Way of Learning Assembly Programming
BESTSELLER NO. 8 in 2020

Introduction to 64 Bit Assembly Programming for Linux and OS X: For Linux and OS X

Introduction to 64 Bit Assembly Programming for Linux and OS X: For Linux and OS X
BESTSELLER NO. 9 in 2020

Assembly Language Programming: For PC and Laptop Computers

Assembly Language Programming: For PC and Laptop Computers
BESTSELLER NO. 10 in 2020

Assembly Language Programming Made Clear: A Systemic Approach

Assembly Language Programming Made Clear: A Systemic Approach
BESTSELLER NO. 11 in 2020

Basic IBM Mainframe Assembly Language Programming

Basic IBM Mainframe Assembly Language Programming
BESTSELLER NO. 12 in 2020

Guide to Assembly Language Programming in Linux

Guide to Assembly Language Programming in Linux
BESTSELLER NO. 13 in 2020

An Overview of Looping in 80x86 Architecture

This article will show you basic examples of programming loops and logic for the assembly language computer architecture.

In programming, there are three essential components to any loop:

An Initialization of the loop control variable

A test for the loop control variable

An update of the loop control variable in the loop body

An example pseudo-code which will read 10 numbers and display the sum:

Initialize count

While (count

Read number

Add number to sum

Increment count

Display sum

An example snippet of x86 code which reads 10 numbers and displays the sum:

Mov

ebx, 0

Mov

cl, 0

whileLoop:

cmp

cl, 10

jge

endWhile

input

prompt, string, 20

atod

string

add

ebx, eax

inc

cl

jmp

whileLoop

endWhile:

dtoa

result, ebx

output

msgLabel, result

Two example pseudo-code program snippets which will read up to 10 numbers and display the sum, as long as the user enters numbers greater than 0

Initialize count

Read number

While (count 0)

Increment count

Add number to sum

Read number

Display sum

OR

Initialize count

While (count

Read number

If number

Break

Add number to sum

Increment count

Display sum

An example snippet of x86 code which will read up to 10 numbers and display the sum, as long as the user enters numbers greater than 0:

Mov

ebx, 0

Mov

cl, 0

whileLoop:

cmp

cl, 10

jge

endWhile

input

prompt, string, 20

atod

string

cmp

eax, 0

jng

endWhile

add

ebx, eax

inc

cl

jmp

whileLoop

endWhile:

dtoa

result, ebx

output

msgLabel, result

An example pseudo-code which will prompt for and input count, and read "count" numbers and display the sum:

Prompt for count

Read count

While (count gt; 0)

Read number

Add number to sum

Decrement count

Display sum

An example x86 snippet which will prompt for and input count, and read "count" numbers and display the sum:

Mov

ebx, 0

Mov

cl, 0

Input

prompt, string, 20

Atod

string

Mov

cl, string

While:

cmp

cl, 0

Jle

endwhile

Input

prompt, string, 20

Atod

string

Add

ebx, eax

Dec

cl

Endwhile:

dtoa

result, ebx

Output

msgLabel, result

An example pseudo-code which will prompt for and read numbers as long as each number is greater than 0 and display the average of those numbers:

Initialize sum to 0

Read number

While (number gt; 0)

Add number to sum

Increment count

Read number

Divide sum by count and store as average

Display average

An example x86 snippet which will prompt for and read numbers as long as each number is greater than 0 and display the average of those numbers:

Mov

ebx, 0

Input

prompt, string, 20

Atod

string

While:

cmp

string, 0

Jle

endWhile

Add

ebx, eax

Input

prompt, string, 20

Atod

string

endWhile:

dtoa

result, ebx

output

msgLabel, result

**Note: atod, dtoa, wtoa, and atow are specific functions used for converting ascii strings to word or doubleword format for storing in a register, and vice versa for output to the screen.