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

Reply via email to