16 bit Assembly
Using Register Addressing
Instructions and Op Codes
Overview of my Compiler
16 bit Date Extraction
FAT12 Floppy Disk Access
32 bit to 16 bit File Size
Finding Free Disk Space
16bit Memory Routines
Mouse Callback
Floppy Disk Parameters
Registers
The Root Directory
Using the Stack
Creating a Boot Disk
Direct To Screen Output
16 bit Time Extraction
Basic Display Code
My compiler is written in MS C++ and is specifally 16bit only, although I can use the 32bit register names they are always treated as 16bit.
A quick overview
When compiling it undertakes:
- A basic syntax check
- Verifies the Commands entered
- Checks the existance of any Sub Routines
- Reports any errors it finds in the status window
If no errors are found it starts compiling making two passes of the Code.
The first pass:
- Checks the syntax
- Calculates the EXE size and prepares the Code
- Verifies the Sub Routines and records their location in the code
- Updates the Sub Routine list if new routines are found
The second pass is mainly concerned with insertion of the Sub Routine addresses.
On completion of the the Compiled EXE it is saved with a number of additional files:
- A stage backup copy of the ASM code file
- A debug file, that can used to check jumps and other addressng issues.
- A list of all Sub Routine in the ASM code file, with the Address location in the EXE.
The Editor & Compiler Dialog