Hello Jim, I started learning assembly with 32-bit x86 Intel syntax (Windows), and it is easier to understand a flat memory model rather than all the segment-register addressing and some limitations of registers usage/combinations.
Anyways, when it comes to real mode 16-bit DOS, the best way to start is by examining some simple ".COM" programs with the "DEBUG.COM"/"DEBUG.EXE", get familiar with the syntax, etc. (use virtual machine or "DOSBox" emulator to not crash the real OS) Learn about structures like "Program Segment Prefix", the Stack, calling conventions, the 640kB conventional memory. Compare some "C" source code with a program that does the same in "ASM" using system interrupts and user procedures. Some useful resources: https://en.wikibooks.org/wiki/X86_Assembly https://www.pcjs.org/documents/books/mspl13/msdos/ https://archive.org/details/Advanced_MS-DOS_Programming_2nd_Edition_Ray_Duncan/ https://fd.lod.bz/rbil/index.html Then of course you can read through source code repositories, like the "MS-DOS 2.0" archive: https://github.com/microsoft/MS-DOS/tree/master/v2.0/source As others already suggested, assemble tiny ".COM" programs with "NASM", then maybe compare output from "DEBUG" listing to your ".ASM" source code. Best regards, Radek _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel