|
From: C. M. <pu...@ul...> - 2022-06-30 18:17:51
|
On at 2022-06-30 10:00 -0500, Santiago Almenara wrote: > Hello! > > What book or webpage do you recommend to learn some DOS assembler? > > Thanks in advance > > Santiago I learned primarily using these methods: 1. Read existing code and try to understand it. Even better, start with higher-level commentary about code if you can find any. Some applications' manuals are good for this, eg DOSLFN. 2. Have an english-language instruction set reference handy. I used the one included with older NASM versions, which I subsequently forked when it was dropped from NASM. [1] 3. Likewise, refer to the Interrupt List for reference as to what a particular interrupt service does. Apart from some modern extensions it is fairly complete. It can be found in plain-text files (split across a lot of them, you can concatenate them to receive a single file) on Ralf Brown's pages [2] and can be accessed online, page per page, hosted by several different websites such as fd.lod.bz [3]. 4. Try out things in a debugger if unsure, such as when unclear about what a particular instruction does, or to trace an existing program and try to improve your understanding of its workings. My main project is lDebug (with a small "L"), a debugger with a command line interface that's based on FreeDOS Debug. [4] 5. You can also read some of the books that have been written about DOS. At home I have the following print books: "FreeDOS Kernel", "DOS Internals", "Undocumented DOS (Second Edition)" (UDOS), "Dissecting DOS", "Extending DOS", "Advanced MS-DOS Programming", "Writing MS-DOS Device Drivers", and a german "DR DOS 6.0" manual. UDOS and the DR DOS manual are probably the best among these. Finally, I wrote a document called Assembly Comments Explained: Guide for Advanced Learning and Style [5]. It is intended to clarify conventions in my assembly language sources in particular. Regards, ecm [1]: https://pushbx.org/ecm/doc/insref.htm [2]: http://www.cs.cmu.edu/~ralf/files.html [3]: https://fd.lod.bz/rbil/index.html [4]: https://pushbx.org/ecm/web/#projects-ldebug [5]: https://pushbx.org/ecm/doc/acegals.htm |