Back in 1984, I wanted to write a Z80 assembler. At the time, this would have meant coding it in Z80 machine code, but due to the conveniences of modern technology, I have now done it in C++.
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.
C++11 header-only class, executes functions on a separate thread, including return values. Featuring a unique custom built, low level, lock-free double buffered queue; with a high speed data format, executes a queue of functions in only 6 CPU instructions; lea,call,mov,add,cmp,jb
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!
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.
This project describes an X86 assembler IDE for the MAC developed using JavaFX. The starting point was an X86 emulator developed by the author in C++, which was subsequently ported to C#.