How to implement common logic constructs such as if/else/loops in x86 assembly

In the last few articles on x86 assembly, we discussed a variety of concepts which include x86 Instruction Set Architecture, x86 syntax types, data representation, commonly used x86 instructions, building…

How to control the flow of a program in x86 assembly

x86 assembly language just like most other programming languages provides us with the ability to control the flow of the program using various instructions. This article provides an overview of…

How to diagnose and locate segmentation faults in x86 assembly

Segmentation faults commonly occur when programs attempt to access memory regions that they are not allowed to access. This article provides an overview of segmentation faults with practical examples. We…

How to use the ObjDump tool with x86

Having access to an analysis tool when dealing with compiled executables is always useful. In Linux, ObjDump is one such tool, which can be used to extract information from object…

Debugging your first x86 program

Debugging the compiled programs is one important aspect of learning x86 assembly language. When working with assembly programs, the only way to step through every single instruction written in the…

How to build a program and execute an application entirely built in x86 assembly

In the previous article, we discussed an overview of common x86 instructions which can be used in writing assembly programs. With the knowledge we have gained so far, we are…