Current area: HOME -> Assembly -> x86 Articles Articles
x86 Articles
32-bit Protected Mode PC Assembly Language Book
I have revised my tutorial on 80x86 Assembly Language programming and am making it available for free on the net. It has extensive coverage of interfacing assembly and C code and so might be of interest to C programmers who want to learn about how C works under the hood. All the examples use the free NASM (Netwide) assembler. The tutorial only covers programming under 32-bit protected mode and requires a 32-bit protected mode compiler.
AMD Code Optimization Guide
This document contains information to assist programmers in creating optimized code for the AMD Athlon processor. In addition to compiler and assembler designers, this document has been targeted to C and assembly-language programmers writing execution-sensitive code sequences.
An Introduction to Assembly Language: Part I
Most programmers shy away from Assembler (or assembly language). People tend to consider it as a very difficult language to understand and use. Moreover, anyone who knows how to use it is tended to be regarded with some reverence by other programmers in his community.
Art of Assembly home
Complete guide to assembly programing on x86 and the x86
itself. It is very easy to understand for beginers and an
exelent resource for advanced programmers.
How to calculate integer square roots
The purpose of this exercise was to create an algorithm to find integer square roots using only integer operations (this method was initially devised by me in 1990 - when I was 16 - for the ZX Spectrum +3 which had a Zilog Z80 (Intel APX 8080 compatible) processor which doesn't even have multiply or divide assembly instructions!).
How to optimize for the Pentium microprocessors
This manual describes everything you need to know about
optimizing code for the Intel microprocessors, including
Pentium, Pentium MMX, Pentium Pro, Pentium II, and some
information on Pentium III.
How to write MBR code
There is lots of info on how to make MBR(Master Boot Record)
-based programs, but its all scattered or outdated. This is an
attempt to collect the useful information into a single
relevant tutorial/example. Sample source code availible.
Inline assembly for x86 in Linux
Bharata B. Rao offers a guide to the overall use and structure of inline assembly for x86 on the Linux platform. He covers the basics of inline assembly and its various usages, gives some basic inline assembly coding guidelines, and explains the instances of inline assembly code in the Linux kernel.
Intel Architecture Optimization Reference Manual
This manual provides information on Intel architecture as well as describes code optimization techniques to enable you to tune your application for best results, specifically when run on Pentium II and Pentium III processors.
Introduction to MMX
For those of you that like to dig deep, this tutorial will give a taste on MMX and how it works, as well as why and when to use it. Assumes you have some knowledge of assembler already.
Learning Assembly - A beginnner's tutorial
This tutorial is an attempt to write an article that much more
simply covers programming in Assembly. No longer do you just
have information thrown at you - It it clearly, and
THOROUGHLY, explained, accented with examples.
Linux Assemblers: A Comparison of GAS and NASM
This article explains some of the more important syntactic and semantic differences between two of the most popular assemblers for Linux, GNU Assembler (GAS) and Netwide Assembler (NASM), including differences in basic syntax, variables and memory access, macro handling, functions and external routines, stack handling, and techniques for easily repeating blocks of code.
MMX and assembly optimization for Intel and AMD CPU's
Here is an example of how to use AMD and Intel's MMX
technologies to increase performance. Of course, these
optimizations cannot always be applied but I hope they can
still be useful. In this example, I am adding two tables of
1000 unsigned bytes together. On my AMD Athlon XP 2500+, my
assembly code runs 2.9 times faster than the equivalent C++
compiled code.
OS Development Series
This is a series of on going tutorials developed specifically for beginner systems developers. Its aim is to provide the best and most informative information on developing a basic 32bit graphical operating system using NASM and C++ - Step by Step, and from the ground up.
This is a step by step series that is currently in development.
Programming in extreme conditions
What is 'extreme conditions' ? When you are sitting in front of a computer with only MS-DOS installed without any compilers, hex editors, shells, debuggers and you need to recover lost data, delete virus, or write a new one. This is an extreme conditions. Most of programmers won't be able to do anything, most of administrators think that this computer is totaly secured.But this won't stop the assembler programmer ...
The Art of Optimising
by Nutfreak / Freedom Systems - As the reader progresses through the pages of this document, he will understand the necessity for optimizations in both his algorithm and his code. Various issues will be dealt with, such as algorithm implications: where are the common flaws that one should avoid, and how to speed up the thought process when designing a fast algorithm.
It is a serious and complete article covering the subject.
Win32 Exception handling for assembler programmers
We're going to examine how to make an application more robust
by handling its own exceptions, rather than permitting the
system to do so. An "exception" is an offence committed by the
program, which would otherwise result in the embarrassing
appearance of the dreaded closure message box:-