Oke let us say you have done some programming and you are dissatisfied in that you have no direct control over the PC. Be it that you want to make your programs faster, or that you want some added functionality or that you just want to know what is in fact going on when you use the doscommand DIR, in every case the way to go might be to learn (a little) assembly language.
When you just decided you want to learn something it is often very difficult and timeconsuming to find an introduction you like. So to spare you the agony of finding the right one, i will open a road for the absolute novice here, which is garantied to start at 0 and end at a level on which you have access to a lot of sources.
ASSEMBLY LANGUAGE FOR THE IBM_PC
I think the very best book to start with is P. Nortons "Assembly language for the IBM-PC". I suggest you first get a hold on that book. Since it is rather old you might buy it somewhere very cheap, or borrow it in a librarie. The book is rather a slow but thorough introduction off the first steps to assembly language. In the first 8 chapters Peter Norton is introducing various assembler basics and commands(mnemonics), with the aid of a program called debug. Debug is in fact an assembler which almost everybody have loaded on his disk, but more or less as a sleeping opportunity. When you do not have the program , you can download it here as a part of a package of old dos programs. Together, this program and the book mentioned give you all you need for the first steps in assembly! And this page will help you get even more out of both.
There is only one little trouble with the program debug. Its features are barely documented and the syntaxis of the commands are sometimes confusing. That is the reason why, when in the first chapters of "Assembly language..." there is made use of some debug command, the command syntax is explained first. But, given the purpose and excellent process character of the book, the book does not stop to give a complete overview of debug commands. As is usually the case however, you might get interested enough to play a little around with the possibilities off debug and assembly at the very early stages of learning. In fact debug is very suited to give a quick insight into the possibilities of assembly, even at this early stages of learning. But you will need an overview of the syntaxis of debug and some key examples which are elaborating on the examples given in the book( and from some other sources among which "Inside the IBM PC and PS/2" from the same author). Both, the complete overview of the commands of debug and a few key examples are given in the debug section of this pages. So when it seems to be a little bit boring, or theoretical what you are learning at the start of "Assembly ..." you might turn to this pages to explore debug/ your PC/ assembly language for a short while a little more from the practical point of view. The pages are especially designed for the novice, so do not be afraid that you will not understand them without some a-priori knowledge.
In chapter 9 the book is progressing with the use of an assembler. You will notice there that aside from assembly language, you also have to learn some things about assembly compilers( assemblers), debuggers and unassemblers. Though in the book masm is used( which is not cheap and even then not easy to get), there is an excellent masm-compatible shareware assembler available. You can upload this valarrowpackage as it is called from this page.
With the package that follow you have all the tools necessary to work your way through the whole book.:
The only drawback is that unlike some $300 assemblers there is not much of a documentation available, so you have to find things out. That is the main reason i maintain a section about valarrow specifications , since it costed me a lot of inproductive time to find some very simple things about the assembler, and by sharing them i hope i facilitate the learing process' of others. When you have read and understanded the specifications i am describing at those pages i am absolutely sure you can work your way through P. Nortons book. When you want some source, in valarrow, of the programs developed in the book you can mail my for it, since i got them all working. Also i hope that when you know of some other undocumented feature of valarrow you will mail me so that i can update this page....
MORE THEN "ASSEMBLY LANGUAGE FOR THE IBM_PC "............?
Oke, like i said before, when you have worked your way through the aids this pages are offering you are garantied to finish the book. But you might want some more... "Assembly language for the IBM_PC" is process oriented. This means that it is inviting you for a tour, and tries to answer the questions that arise on the way. If i may say so, in this respect it is very well succeeded. Often this type of book can only be written when the text is thoroughly worked through, time and again. It surprised me that the author found the time to do that. No doubt that with the current speed of developments in PC_WORLD not a lot of books will share this kind of set up. The tour Peter Norton is inviting you for is called "writing a diskeditor"( called diskpatch.exe). While doing that a lot of features of assembly language will be touched.
There is one major drawback of the process-way the book develops, however. When at some point you are getting really interested in some topic P. Norton touches, say interrupts, you will not find support for a short stop on the road so to speak. So that is what this page will also try to offer. I will try to understand what general interests develop when you are building diskpatch.exe with "Assembly language for the IBM_PC". And i will develop some highlight sections as a response to this interests. Also i will introduce you to some further sources in cyberspace.........
The highlights sections are partly interfaced with valarrow assembler but also partly interfaced through QBASIC. Since a lot of people seems to know qbasic and it is fairly easy to interface assembly with qbasic at this levels i wrote a few assembly related example programs and discussions at the qbasic pages.