The Programmer's Guide describes how to get the most out of the Microsoft Macro Assembler 6.0 and the Programmer's WorkBench. The book is arranged by topic, with each topic answering a question or solving a problem. The last section in each chapter lists topics in the online reference system that provide additional information.
The Programmer's Guide is divided into three parts:
Part 1, “Programming in Assembly Language,” explains how to program efficiently using both the new and old features of MASM. It reviews the basic components of assembly language and also describes the new and enhanced features.
Part 2, “Improving Programmer Productivity,” introduces the utility programs included with MASM 6.0. These programs can help you program more quickly and efficiently. For example, the chapters in Part 2 show you how to automatically update your project (Chapter 10), use program lists as input (Chapter 11), use the Microsoft linker (LINK) (Chapter 12), write module-definition files (Chapter 13), customize PWB to suit your programming style (Chapter 14), use the CodeView debugger to record and play back a debugging session (Chapter 15), and easily port data structures from C programs to MASM programs (Chapter 16).
Part 3, “Advanced Topics,” covers specialized areas. It describes how to write programs to run under OS/2 (Chapter 17) and how to build dynamic-link libraries (Chapter 18). Chapter 19 shows how to write a terminate-and-stay-resident (TSR) program. Chapter 20, on mixed-language programming, defines the calling conventions and equivalent data types that allow MASM to call and be called by C, FORTRAN, Basic, and Pascal.
In addition, six appendixes and a glossary detail the features of MASM 6.0. Of particular interest are Appendix A, “Differences between MASM 6.0 and 5.1,” and Appendix B, “BNF Grammar.” Appendix A lists the new features of MASM 6.0 and also explains how to update MASM 5.1 code. The BNF grammar, or Backus-Naur Form for grammar notation, lets you determine the exact syntax for any MASM language component. It clearly defines recursive definitions and shows all the available options for any placeholder. Other appendixes cover assembly listings, reserved words, default segment names, and error messages.