Inline assembly language programming is the cornerstone of all our publications!
Our books are dedicated to promoting assembly language programming concepts in a clear and jargon-free manner. Each book is designed to appeal to novice programmers. More experienced software developers will appreciate the additional details and multitude of tables that are included. The purpose for writing these books is to present introductory concepts on how to combine assembly language instructions with high-level programming languages when creating new applications.
❶ Incorporate x86-64 compatible assembly code in high-level source code
❷ Create a structured, bi-level, strictly-typed programming language
❸ Design and develop a 64-bit high-level programming language compiler
❹ Produce a basic IDE with a graphic user interface (GUI) to support application development
❺ Build Windows-based component libraries to extend the capabilities of a language
Assembly is the one language that logically reflects every element of the computer's underlying hardware architecture. We believe that assembly language is a critical foundation of software design, and is probably a fundamental requirement for all software developers at some stage of application development. With this awareness in mind, our mission is simple: to bring to the widest possible readership the latest trends in assembly language programming. We also understand that most users are constrained by limited resources in which to learn new software design concepts. For this reason we use the learn-by-doing approach to reduce the complexity and time it takes to learn assembly language programming.
The fastest way to learn assembly language is to start using it in mixed-mode applications.
This book provides a step-by-step approach to inline assembly language programming using high-level languages. Designed to help novice programmers break through the complexity of mixed-mode programming, it differs from other assembly language offerings because it concentrates on inline assembly programming—writing very low-level code written using assembly instructions and embedding them in a high-level language such as Adagé, BASIC, or C. No other book teaches you so much, so fast, and so easily about assembly language programming.Purchase
The Adagé Reference Manual is both a complete reference document and rationale for the Adagé programming language. Adagé (Adaptable and Generally Extendable) is a high-level programming language used in all our publications to support mixed-mode application development. Proceeding from introductory design explanations of fundamental concepts to detailed discussions of Adagé language features, this book presents the software-engineering concepts, methods, and goals underlying the design of Adagé. Special attention is paid to incorporating inline assembly instructions in applications.Purchase
This is a Step-by-step introduction to designing a highly structured, strictly typed programming language. Although the book focuses on a language called Adagé, the principles can be applied to the development of any similarly-styled language. Adagé is designed as a bi-level implementation so that users can program in a high-level format, but achieve low-level machine access through inline assembly language facilities. Nothing beats assembly language for microprocessor power and efficiency. This book provides essential insight into assembly coding in preparation for developing a 64-bit compiler.Purchase
NOTE All our books are based on the Windows OS, Intel x86-64 architecture, and NASM syntax. You will find no examples of MASM or AT&T/GNU GAS syntax nor any reference to Unix, Linux, MS DOS, CP/M, or Apple operating systems. Inline assembly language instructions are used in mixed-mode programming format versus standalone assembly programs.
This in-depth book provides a practical introduction to writing a Windows-based 64-bit compiler for a subset of several popular programming languages. We call the hybrid language Adagé. Where most compilers are typically built using C or C++, we use a version of BASIC as our bootstrap language to write our source code. Using BASIC helps novice programmers better understand compiler construction technologies. In addition, this book concentrates on areas that are critically important in understanding compilers such as diagnostic tools, error detection and processing, and code generation.Purchase
A graphical user interface (GUI) is a type of application that allows users to build and interact with their programs. IDE Design and Development provides step-by-step insight into creating a dedicated integrated development environment (IDE). The IDE is developed using the BASIC programming language and scintilla functions to maximize programming productivity and simplify complex procedures. Although the IDE is focused on the Adagé compiler, the instructions are sufficiently general enough to be used in creating an IDE for most high-level programming languages.Purchase
Reusable libraries provide routines that extend the capabilities of a programming language. Structured Program Libraries concentrates on the principles of library design using an easy-to-follow approach. It focuses on how to build working libraries for the Adagé programming language that are highly cohesive and reusable. Although component libraries provide considerable power and standardization to programming languages, they are fairly ambitious undertakings. For this reason, BASIC and inline assembly are used to reduce complexity and enhance user comprehension.Purchase
All our books are fast-paced introductory guides designed to help you build actual working applications using the Learn-by-Doing method of instruction. Every book presents techniques recommended by industry-leading software experts.
PMzone books are written for novice programmers who have no programming experience at all as well as computer science students who have some experience in BASIC, C, or other high-level programming language. It also helps greatly if programmers who read our books have some familiarity with the Windows operating system. All our publications apply the PMzone signature learn-by-doing approach to learning mixed-mode programming.
The learn-by-doing method presents most concepts in the context of both code snippets and complete working code where necessary. The following components are included in our approach: (1) programming guides that cover basic concepts related to the subject material, (2) practical examples using industry-recommended coding techniques, (3) exercises to ensure essential knowledge has been internalized, (4) first-class tools to facilitate hands-on learning activities, and (5) links to professional software developers who can answer questions and provide assistance.
The goal of Adagé is to provide a programming language that increases the likelihood of applications behaving as intended by its user. To this end, Adagé contains simple syntax, adequate expressive power, strict security and safety requirements, strong typing and syntax verifiability, and restricted aliasing and overloading.
Simple syntactic constructs reduces the risk of unintended surprises. A language with a large number of complex constructs is more difficult to learn than one with a smaller number of constructs. As such, simplicity increases understanding and program readability.
Hand-in-hand with simple syntax is feature multiplicity. That is, having more than one way to write a particular operation. Adagé takes the approach that there should be one best way to write an operation and having multiple ways makes compiler design exponentially harder to accomplish and programs harder to read.
The expressive power of an imperative language has to do with the number of basic constructs available to a programmer that can be substituted with each other. For instance, the "if" key word can be easily written in terms of a "case" statement. Adagé optimizes expressive power by minimizing the number of different ways an operation can be expressed in order to reduce syntax ambiguities and number of constructs.
Adagé provides program security and safety through strong static and dynamic checks, array bounds checking, restrictions on the use of aliasing and overloading constructs, and proof verification functions. This ensures Adagé performs to its specifications under all programming conditions.