Click here to Skip to main content
15,881,027 members
Everything / Programming Languages / ASM



Great Reads

by codestarman
X86/ARM emulator written using C++ and assembler for the .NET environment.
by Ryan Scott White
CudaPAD is a PTX/SASS viewer for NVIDIA Cuda kernels and provides an on-the-fly view of your Cuda code.
by Dr. Song Li
This is a note on how compilers implement function calls to pass the parameters to and get the return value from the called functions.
by Jose A Pascoa
Rolling up a practical solution

Latest Articles

by shunninghuang
C# arcade emulator, ROM hacking
by Jonathan Chapman-Moore
How to build Microsoft Disk Operating System 1.25
by Dr. Song Li
This is a note on how compilers implement function calls to pass the parameters to and get the return value from the called functions.
by Sarthak S
Assembly inspection and hacking with windbg

All Articles

Sort by Score


1 Jul 2014 by JIANGWilliam
This article introduces a handy way to get the calling Testing Assembly from a called Assembly
31 Aug 2016 by Sheshnath Kumar
This article will find out a solution to serialize/deserialize object by reference at server and client, also will serialize/deserialize objects having circular references.
14 Nov 2019 by CPallini
An assembly implementation of the AES-128 cipher algorithm for the 8051 microcontroller
8 Jun 2017 by CMalcheski
How to Create a Complete DirectX Game in Assembly Language
14 Jun 2017 by CMalcheski
Part II - Laying the Foundation for the Migration to Assembly
30 Jun 2009 by siyahdeniz
How to use debug
12 Jul 2016 by David A. Gray
Share Win32 string resources without the risk of conflicting resource IDs
3 Sep 2008 by RockmanZero
An extendable report editor. You can simply add your own controls without recompiling the program or writing annoying plug-ins.
4 Mar 2016 by JorgeLuisOrejel
This article is based on Chapter 2 of my unpublished textbook “Applied Algorithms and Data Structures.”
27 Mar 2013 by nick.p.everdox
Usage of Intel/AMD extended processor features.
13 Feb 2013 by nick.p.everdox
Working alongside Windows KPP (patchguard) and hooking system services
8 Jun 2017 by David A. Gray
Historically, ETW has been portrayed as having a very steep learning curve, along the lines of the effort required to summit Everest. Realizing its potential value, I set about to reduce the effort to that required to summit Pike's Peak.
11 Dec 2016 by Russ Osterlund
Code Obfuscation in 64-Bit Land
9 Jul 2012 by perilbrain
A simple technique to integrate a custom build tool in VS 2010.
28 Mar 2023 by Ryan Scott White
CudaPAD is a PTX/SASS viewer for NVIDIA Cuda kernels and provides an on-the-fly view of your Cuda code.
4 Mar 2016 by John Jiyang Hou
An algorithm to determine if a point is inside a 3D convex polygon for a given polygon vertices in MASM Assembly
11 Jun 2022 by Andrea Simonassi
The simplest multiple precision sum algorithm
4 Dec 2021 by Shao Voon Wong
Guess what these assembly instructions with the same source and destination operands do?
4 Nov 2013 by CodeProject
Dave Butler, VP and Senior Business Leader at MasterCard, offers developers insight into the company’s worldwide OpenAPI platform.
17 Sep 2017 by leon de boer
Introducing SmartStart something like a BIOS for the Pi
1 May 2014 by codestarman
X86/ARM emulator written using C++ and assembler for the .NET environment.
27 Feb 2017 by theonemule
To fully take advantage of parallelization features, developers have to change how they code. But a great deal of optimizations can be made through Intel’s parallelization tool, Intel Advisor.
1 Nov 2017 by Jose A Pascoa
Rolling up a practical solution
2 May 2021 by Michael Chourdakis
All in one: x86, x64, Virtualization, multiple cores, along with new additions
24 Sep 2008 by AlexAbramov
Ever wanted to know how to call internal functions of other processes? This is an article on just that -- you'll learn how to read disassembled code in a project where the source code is known, and then apply that knowledge on an application where it isn't.
23 Jun 2009 by Ziad Elmalki
Replace any method with another method at runtime. Updated for 3.5 SP1.
4 Jan 2013 by Colin Eberhardt
This article describes the development of a Windows Phone 8 Run Tracking application that uses a number of the new Windows Phone 8 features.
2 Apr 2010 by Nish Nishant, Professor Cuthbert Calculus, Glenn Quagmire
This paper is a summary of a research exercise conducted in conjunction by Nish Sivakumar, Professor Cuthbert Calculus, and Glenn Quagmire.
5 Aug 2014 by Babu_Abdulsalam
A Simple Profiler for C++ apps on x64 platform
27 Aug 2007 by Drew_Benton
This is a complete beginners guide to codecaves that covers the main topics of: what a codecave is, what a codecave can be used for, and how to use a codecave.
6 Aug 2004 by Toby Opferman
Learn the basics of the kernel debugger.
31 Dec 2008 by Samet KILICTAS
Stepper motor And seven-segment display control with parallel port using Assembly Language
20 Mar 2004 by Toby Opferman
7 Aug 2014 by Jerry.Wang
Modify methods' IL codes on runtime even if they have been JIT-compiled, supports release mode / x64 & x86, and variants of .NET versions, from 2.0 to 4.5.
17 Nov 2009 by 0x3c0
Descriptor tables and interrupts.
8 Dec 2009 by Apriorit Inc, Eugene Wineblat
In this article, we continue investigation in the field of hiding application in the system. This article will tell where Windows OS stores the services and how uses them. We’ll discuss how this knowledge can be applied to finding our custom service and hiding it.
30 Dec 2018 by Michael Chourdakis
Immerse yourself in system programming!
3 Nov 2008 by IndioX86
An article explaining several Win32 reverse engineering techniques applied to Live Messenger research and plug-in development.
5 Jul 2016 by T. Herselman
2 years ago I went OCD on memcpy/memmove; and wrote over 140 variations (80,000 lines of code) of memmove; testing, disassembling, optimizing and benchmarking them on multiple machines. I never released the article or the code; until now! So I need to do it before I loose my mind!
13 Mar 2014 by AshakiranBhatter
Understanding FAT file system and kernel programming in C/C++
5 May 2010 by fhrdina
An article on Windows XP logon process modification
3 Dec 2009 by Tomek Kawecki
An article which describes how to implement a fast polymorphic math parser using machine code generation methods.
16 Oct 2013 by AshakiranBhatter
Reading the contents of a floppy disk using BIOS interrupts and Services.
27 Dec 2005 by Ashkbiz Danehkar
This article demonstrates five steps to inject your code in a portable executable (EXE, DLL, OCX,...) file without recompiling source code.
15 Feb 2012 by Sasha Goldshtein
This article shows several examples of situations where understanding assembly language helps debug seemingly impossible problems with .NET applications.
7 Oct 2016 by digital performance
This article shows how to access Windows API with plain x64 assembly programming language (MASM style). It shall also give an overview, how to apply some programming techniques like OOP and multithreading on a low level.
9 Nov 2008 by Joshua Tully
A look into what goes into the area of preventing reverse engineering, and gives developers some functions and ideas about preventing reversing engineering of their programs.
29 Jan 2019 by Zuoliu Ding
A discussion on some basic practices highly recommended in Assembly Language Programming.
4 May 2008 by Sasha Goldshtein
In this article, we will look into JIT optimizations, with specific focus on inlining.
4 Oct 2017 by CMalcheski
Ditching the slowdowns and applying a little elbow grease can create dramatic speed improvements in GDI image blending.
16 May 2014 by Jan Dolinay
This article explains why the Arduino digital I/O functions are slow and compares them with faster implementation used in Wiring framework.
7 Nov 2011 by Antonio Feijao
A library that implements remote code injection for all Windows versions.
5 Mar 2014 by Mike Hankey
Learn the basic of the AVR micro controller and the assembly language
18 Feb 2024 by shunninghuang
C# arcade emulator, ROM hacking
13 Jan 2018 by Pritam Zope
In this article we will create a simple kernel such as printing HelloWorld first and then writing functions for printing numbers, Keyboard I/O, Box Drawing GUI, and Tic-Tac-Toe game in kernel in C
17 Dec 2019 by Alexandre Bencz
With this new OrangeC/C++ compiler back-end, you can compile your C code to .NET
1 Oct 2009 by 0x3c0
C++ support code and the console.
23 Jul 2009 by Apriorit Inc, Alex Kolesnyk
This article describes the first steps in low-level programming on the example of developing of simple boot loader
28 Mar 2004 by Toby Opferman
Introduction to the most important ally in the fight against bugs, the stack.
29 Jan 2006 by Toby Opferman
Introduction to the Windows display driver model.
16 Jan 2012 by Tomas "Frooxius" Mariancik
Explanation of the basic workings of the computer in simple language.
14 Oct 2008 by AlexAbramov
In this article, I will talk about the theories and implementations of API hooking. API hooking is a powerful technique that allows someone to hijack a function and redirect it to a custom one. Anything can be done in these functions before passing control back to the original API.
1 Dec 2012 by Nicolas Dorier
Debugger API, explore and modify running program easily
27 Apr 2005 by Toby Opferman
Introduction to TDI Client drivers and more IRP handling.
1 Jan 2013 by Dávid Kocsis
A new general purpose language that aims to be fast, high level and simple to use.
22 Sep 2015 by Jerry Evans
Adding cross-platform round-trip JSON serialization to C++ classes
31 Dec 2018 by Michael Chourdakis
Curious on how you create a hypervisor app? Read mode!
29 Sep 2014 by Ben M Watson
Understand exactly what happens during object allocation in .NET, why it's extremely efficient in the common case, and how to trigger slower code paths
10 Apr 2008 by Daniel Pistelli
A powerful x86/x64 Hook-Engine
12 Jul 2016 by David A. Gray
The Excel powered resource generator, version 2, is vastly improved and better documented.
12 Feb 2009 by Gregory Shpitalnik
How to inject some code into running Linux application
24 Nov 2014 by Jeremy Falcon
A beginner's guide to talking like a computer.
20 May 2009 by cyb70289
Inject user mode routine into kernel space and execute
7 Aug 2004 by Toby Opferman
Learn the basics of debugging deadlocks and other issues.
14 Jan 2014 by ISpliter
When discussing VB6, we should look at the reality of the situation and not on preconceived opinions. New source code projects are made daily in Visual Basic 6.0. The paper proposes the reintroduction of Visual Basic 6.0 on the market, in parallel with Visual Studio line.
9 Aug 2012 by Dr. APo
This article presents an experimental platform consisting of two computers to conduct hardware programming and research, unrestricted by any Operating System.
19 Mar 2004 by Toby Opferman
Learn how to debug problems in software.
17 Aug 2009 by Michael Mangelsdorf
A DLL implemented in assembler featuring a console GUI component
17 Feb 2015 by Jan Dolinay
This article describes software library for the FRDM-KL25Z board which allows writing programs for this board using the Arduino API.
26 Dec 2011 by Drag0nHunter
ASM.Net a assembly x86 emulator which emulates the language the managed way
10 May 2012 by icemanind
This article takes you through a step-by-step process of creating your own virtual machine.
1 Jan 2013 by Dávid Kocsis
A new general purpose language that aims to be fast, high level and simple to use.
9 Mar 2015 by Jan Dolinay
This article describes faster but still easy-to-use version of digital I/O for Arduino
17 Oct 2011 by Jose A Pascoa
This article deals with building a standalone 64-bit .NET .exe file that is statically linked with an Assembly Language compiled object file.
20 Apr 2015 by AshakiranBhatter
How to boot a floppy image with your own hand written code in C and Assembly
19 Feb 2008 by codekaizen
How much faster will implementing "the generic bad algorithm" in SSE2 make it?
12 May 2014 by MSBassSinger
Compiling and running C# code from your application.
11 Oct 2006 by S Keller
Writing your own operating system.
22 Jul 2010 by cyb70289
An I/O port sniffer using hardware debug registers.
4 Apr 2005 by Elias Bachaalany
An article showing how you can programmatically check if your code is running inside a virtual machine (such as VPC or VMWare).
19 Dec 2012 by Zuoliu Ding
A discussion on how switch/case is executed, by reverse engineering in VC++
10 Dec 2008 by Quake2th
The first part of a two-part article which will illustrate how to redirect the PLT of a process through the injection of a shared object into its address space.
1 Jan 2013 by Dávid Kocsis
A new general purpose language that aims to be fast, high level and simple to use. (I renamed it from Anonymus)
1 Jul 2022 by Michael Chourdakis
Try deep CPU features
16 Aug 2010 by Rene Pally
Intercepting .NET SQL queries at runtime - SQL Management Studio case.
7 Mar 2008 by Jeffrey Walton
Add functionality to a project using existing compiled machine code.
8 May 2004 by Toby Opferman
Learn how to debug handle leaks in Windows.
31 May 2023 by Sarthak S
Assembly inspection and hacking with windbg
5 Apr 2005 by Don Clugston
A comprehensive tutorial on member function pointers, and an implementation of delegates that generates only two ASM opcodes!
26 Dec 2018 by Michael Chourdakis
Trigger all your cores from DOS
18 Jul 2008 by John_Tang
An introduction to thunk and its uses in callback handling, interface marshaling, and supporting multiple inheritance in C++.
22 Jan 2017 by Kewin Rausch
How an application performs metamorphism to adapt and survive in an "hostile" environment.
18 Sep 2008 by Joshua Tully
A brief introduction into Windows anti-debugging techniques.
4 Jun 2016 by Southmountain
An intensive research is given on this topic. A handy utility tool is built to check if an assembly unmanaged or managed, built for 32-bit or 64-bit Windows.
22 Aug 2016 by Sanmayce
Tuned function for searching a needle in a haystack
16 Sep 2015 by minor_28
Masm code editor with syntax highlighting, etc.
6 Feb 2012 by AmrThabet
How to write a reliable shellcode on win32, how to bypass the obstacles that you will face in writing a win32 shellcode and how to implement your shellcode into Metasploit
20 Sep 2012 by Palavos
x8086 assembly program that encrypts/decrypts text input from the keyboard by using basic assembly language ideas
2 Jun 2015 by David A. Gray
Use static buffers to guarantee that error message reporting succeeds, even when token replacement is required, and memory is low.
25 Jan 2011 by jmlb
Creating a project with Keil for a 32KB program space
4 Jul 2011 by Chad Z. Hower aka Kudzu
Several users have written to me requesting information on the new Cosmos X86 assembly level debugger. Because of the great interest I have written this short preview article.
5 Mar 2007 by Ultrano
Optimized implementation of a readers/writers-lock sync object.
27 Feb 2010 by icemanind
This article takes you through a step-by-step process of creating your own virtual machine.
27 Jan 2010 by Rajasekharan Vengalil
How to write a program that deletes itself
29 Nov 2006 by S Keller
How to build and test your own Operating System.
26 Aug 2015 by Christophe Duparquet
This article introduces a hardware abstraction tool for microcontroller programming.
10 Oct 2013 by Code Artist
Example implementation of dynamic assembly loading in C#
15 Aug 2012 by Arman Aşçı
Time division multiplexing between 6 x 7-Segment displays control with Parallel Port and x86 assembly.
11 Apr 2019 by Jose A Pascoa
Although most Windows programmers have already used the RichEdit Control, many of them are not aware of all its capabilities. One such capability is image embedding.
8 Jul 2013 by JP van Mackelenbergh
Abstracting the ORM Framework via Repository/Unit Of Work patterns
5 Jun 2008 by Maruf Maniruzzaman
Environment settings for OS development
15 Sep 2004 by RedSunBeer
Some thoughts on estimating before having a design in place.
4 Oct 2009 by Nathan Campos
Shows how to create a simple DLL and invoke it in another program
2 May 2009 by Tolga Birdal
Fast image inversion forms a good basis for optimizing pixel wise operations. We will discuss the ways to achieve the best speed on this inversion operator.
26 Jun 2010 by bjames02
Learn the benefits of using this simple technique to design and document your code
3 Oct 2004 by f2
A beginner's introduction to one of the optimization methods.
19 Jan 2013 by kim.david.hauser
An Image fader application. This hides information behinde an image and fades it out onMouseOver to display the content behind the image. Useful for hiding something, or as a stylish accessory.
27 Sep 2005 by Peregrine Falcon
Disabling tooltips system-wide - efficiently!
5 Apr 2007 by akyprian
Display simple, animated GIFs in your applications using the AniGIF custom control (packaged as a DLL and a static library).
8 Sep 2008 by flyhigh
Introducing a simple method to display a transparent PNG file.
9 Sep 2016 by Jose A Pascoa
SIMD instruction sets may expect a special alignment of memory, but when that memory is on the stack MASM does not provide alignment facilities.
1 Feb 2005 by Sachin R Sangoi
Difference between different the calling conventions.
30 Dec 2006 by akyprian
Maximum performance, reduced size applications using 32-bit assembly is easy
11 May 2021 by Octavio Sanchez Huerta
Building a robotic arm with 4 degress of freedom using PIC16F628A and Servo's
8 Sep 2004 by Marcello Cantelmo
Simple check for break-points on eXecution of a system debugger!
11 Jun 2022 by Andrea Simonassi
A simple subtraction algorithm for multiple precision arithmetic
11 Jun 2022 by Andrea Simonassi
The first and simplest of the multiplication algorithms, fast enough to multiply not too large numbers
24 Mar 2004 by Toby Opferman
This tutorial we will attempt to write a simple debug extension.
19 Sep 2004 by skywind3000
A Smallest Game Demo Code
26 Dec 2004 by Peter Kankowski
Optimizing string-manipulation functions.
10 Feb 2005 by Russ Osterlund
This article examines the JIT thunk layers that your code executes when a method is run for the first time.
19 Jul 2005 by Nadeem Afana
An article on mixed-language programming.
19 Sep 2005 by Doga Arinir
Calling C++ operations from assembler code using member function pointers.
20 Oct 2007 by akyprian
A processes and threads manager application.
19 Aug 2007 by zhzhtst
This article supplies the source code of the _ValidateEH3RN function in Structured Exception Handling.
25 Aug 2007 by The Ultimate Toolbox
COXDateTimeCtrl provides a handy and flexible method of Date/Time entry and display.
23 Jul 2008 by arnavguddu
Here I will present a simple "Hello World" application that you can boot into from Floppy Drive, like an Operating System.
12 Sep 2008 by gabrielmaldi
A very simple way of doing it.
15 Dec 2008 by Murali Kartha
How to get the virtual address of an API in a user land process from Ring0
8 Apr 2009 by Naveen
Loader snaps
29 Jul 2009 by SergStrashko
Introduce the algorithm and technique for pre-drawing process speed up.
2 Nov 2011 by Rene Pally
Advanced .NET Debugging Extracting Information from Memory
21 Aug 2009 by Werner Willemsens
An article on analysing a program exception or software crash.
30 Dec 2009 by ProtoBytes
Review of Randall Hyde's Write Great Code Vol. 2
28 Jun 2010 by bjames02
An article explaining the benefits of learning assembly language
3 Jul 2011 by Chad Z. Hower aka Kudzu
A quick view under the hood of Cosmos and how it works
18 Jul 2011 by Hubert Haien
Presentation of a memory-wrapper class written in ASM that provides methods to organize and serialize data. Comes with its own 32 bit algorithm.
3 Oct 2011 by Jose A Pascoa
Using Borland Assembler Language in 32-bit and 64-bit Delphi programs.
19 Nov 2011 by RobLazarus
Review about the Creating Your Own Freaking Awesome Programming Language Book
15 Apr 2012 by Russ Osterlund
A totally new version of the article I wrote many years ago called "There and Back Again or Stepping Through the JIT Thunk Layer" but this time examines 64-bit processes and V4.0 of Microsoft's .NET runtime.
11 Jul 2013 by Matthew Faithfull
Querysoft Open Runtime: Architecture compatibility aspect.
22 Sep 2013 by Simbey
The CNativeInvoke class generates x86 function calling code at runtime and executes it.
2 Oct 2013 by Nitay Artenstein
An in-depth look at how to disassemble the x86 instruction set, and how to put it to good use in your own code injections
23 Mar 2015 by Sanmayce
An heavily optimized LZSS decompression etude in C
8 Jan 2019 by Michael Chourdakis
All in one article about raw CPU technologies, access multiple cores and protected or long mode from DOS while still having access to DOS interrupts
19 Jan 2016 by David A. Gray
This article documents issues that I have identified in the new secure overloads of the CRT buffered print routines.
30 Jun 2015 by Toby Opferman
Building your own 64-bit Windows Extender
23 Feb 2016 by Zuoliu Ding
A discussion on some MASM Macro usages, including ECHO directive, parameter type/size check, and repetitions with location counter $.
28 Jun 2023 by Dr. Song Li
This is a note on how compilers implement function calls to pass the parameters to and get the return value from the called functions.
6 Jul 2016 by Victor Soldatov
A coarse approach to operate huge integers.
15 Dec 2016 by leon de boer
More playing, crying and laughing with the Raspberry Pi
18 Jan 2017 by leon de boer
Third in the series of frustrations and adventures with the Raspberry Pi
5 Feb 2017 by Gregory Morse
UTM based on mov is Turing-complete paper x86 and x86-64
28 Mar 2017 by Kristoffer Blasiak
Automated proxy DLL generation with 64 and 32 bit DLL support
23 Apr 2017 by Zuoliu Ding
A discussion on how Visual C/C++ code works with bit-wise logical and shift operators, as well as a loop optimization.
20 Jul 2017 by Jose A Pascoa
The much talked about Kernel data structures
10 Jul 2017 by CMalcheski
App Initialization and Main Window Creation
7 Jul 2018 by CPallini
Programming Microchip PIC32MM microcontrollers in C++ and assembly
14 Dec 2019 by Alexandre Bencz
With this new OrangeC/C++ compiler back-end, you can compile your C code to .NET.
26 Jun 2018 by CMalcheski
A Full DirectX Sample Application Created in Pure Assembly Language
8 Nov 2018 by Member 13737597
This article shows you how to implement trampolines on x64, introduces the idea of sync and async hooks, and dynamically added runtime filters and loggers.
23 Apr 2019 by Member 13737597
This article shows how to automatically catch memory access (read /write) for some memory region and log these changes into file
26 May 2019 by CMalcheski
Part 1 of this article discussed an algorithm for addressing all pixels within a circle with surgical precision, optionally expanded to filling in those pixels as required to create a color wheel; this is part 2 of 2, covering the actual implementation.
9 Sep 2021 by Carles Cortés
Macros to help assembler programmers to improve source code
25 Dec 2022 by InvisibleMedia
This article is written right after a new conversation with ChatGPT ( This conversation is the next step in writing a new algorithm that sorts numbers into o(n). And, ChatGPT says that it is possible to compute a sorting algorithm to have the complexity in o(n).
18 Apr 2023 by InvisibleMedia
This article describes how to divide two polynomials and shows the source code to calculate this division. There is also code to add, subtract and multiply two polynomials.