INDEX                                                  17-1
287 directive, 7-1
387 support, 7-2
A-after operator in macros, 11-6
A86 environment variable, 3-4
A86.LIB file, 13-3
A86.LIB library catalog, 2-1
A86LIB environment variable, 13-5
A86LIB library tool, 13-3
AAD with operand, 5-4
AAM with operands, 5-4
about the author, 1-6
ABS operator in EXTRN, 10-6
absolute segments in OBJ mode, 10-10
address, my, 1-1
align operand list, 10-9
align specification, 10-9
alignment of words, 9-3
allocation directives, 9-3
alphabetical listing, 13-1
ampersand, use to specify standard input, 3-5
AND expression operator, 8-7
angle brackets in MASM, 12-3
archiving, 13-7
arithmetic on floating-point numbers, 7-4
assembler variables, 9-10
assertion checking, 9-10
ASSUME directive, 6-3
asterisk multiplication operator, 8-6
AT combine type, 10-10
at-sign @, in symbols, 4-2
attribute operators/specifiers, 8-9
AUTOEXEC.BAT, 3-4
B operator in EXTRN, 10-6
B override expression operator, 8-9
B-before operator in macros, 11-6
base registers, 6-2
base, default, 12-2
based structure example, 6-2
based structures, 9-6
bases for numbers, 8-1
bases, ambiguous, 8-1
batch file controls, 11-14
BCD numbers, 7-5
benefits of registration, 1-3
BIN extension for object files, 9-3
BIN extension, 3-2
binary base, 8-1
Binary Coded Decimal numbers, 7-5
biography, 1-6
BIOS interface, books on, 3-1
BIT expression operator, 8-6
books on assembler, recommended, 3-1
Boolean negation operator, 8-7
Borland Turbo C, using A86 with, 13-7
brackets, 8-11
British contact, 1-1
bugs, reporting, 1-6
                                                       17-2
built-in constant names, 7-4
built-in symbols, 16-1
built-in symbols, equates to, 9-8
BY operator, 8-5
BYTE align type, 10-9
BYTE override expression operator, 8-9
BYTE PTR and WORD PTR, 12-6
C programming language, linking to, 10-1
C switch, 3-2
C, inline assembly statements, 13-7
C-loops in macros, 11-5
capacity, 1-5
capacity, source file, 3-6
case sensitivity, 3-2
case-insensitive comparisons, 8-9
catalog file A86.LIB, 13-3
categories of A86 elements, 4-1
cb specifier, 6-6
cd specifier, 6-6
changing the default base, 8-2
character loops in macros, 11-5
characters allowable in symbols, 4-2
characters recognized in A86 language, 4-2
choices for 87 operands, 7-6
class name, specifying, 10-11
classes, 10-4
clear-register macro, 11-1
clear-register macro, 11-5
closing of macro loops, 11-10
code display, 13-6
CODE ENDS directive, 9-2
code generation of forward references, 9-7
code label specifier, 6-6
CODE SEGMENT directive, 9-1
CODE segment, link to Pascal, 10-11
colon operator, 8-11
colon, deciding when to use, 4-4
columnar output, 2-2
COM extension, 3-2
COM programs, how to detect, 12-1
combine operand list, 10-9
combine specification, 10-9
combine types, 10-9
combining switches, 3-4
COMMENT directive, 4-2
comments in macros, removal of, 11-2
comments, 4-2
COMMON combine type, 10-10
comparison of strings, 8-8
compatibility, 12-1
compression of macro text, 11-2
computation models, 10-2
concatenating terms in an expression, 8-5
conditional assembly and macros, 11-13
conditional assembly and XREF, 11-14
conditional assembly, 11-11
conditional calls, see IF, 5-1
                                                       17-3
conditional jump, far, see IF, 5-1
conditional returns, 5-2
constant operand to FLD, 7-4
constants, floating, 8-2
constants, format of, 8-1
constants, large, 9-5
constants, overview, 4-4
contacting me, 1-6
contents, 0-3
control-character notation, 8-5
control-Z key, 2-2
controls, invocation, user-definable, 11-14
conversion of macros, 13-3
crashes, system, on lack of FWAIT, 7-2
creating programs to assemble, 3-1
credit cards, 1-1
cross reference listing, 13-1
cw specifier, 6-6
D operator in EXTRN, 10-6
D override expression operator, 8-9
D switch, 3-3
data allocation statements, samples, 4-1
DATA ENDS directive, 9-2
DATA SEGMENT directive, 9-1
DATA segment, link to Pascal, 10-11
DB directive, 9-3
DD directive, 9-3
DD examples, 9-5
DEC, multiple and numeric operands, 5-1
decimal base, 8-1
decimal output of macro operands, 11-8
default base, changing, 8-2
default base, decimal, 3-3
default bases, 8-1
default forward references, 3-4
default output file name, 3-6
default segment registers, 6-2
default segment, OBJ mode, 10-12
defined symbols, testing for, 8-8
defining macros, 11-1
demonstration, 2-1
description of 87 instructions, 7-6
description of instructions, 6-8
digits in file names, 3-6
digits, hex, 8-1
directives in a86, 9-1
directives, samples, 4-1
displacement field, 6-4
display of symbol values, 13-2
displaying macro expansions, 13-2
division operator, 8-6
dollar sign $, in symbols, 4-2
dollar sign operator, 8-12
DOS interface, books on, 3-1
double hash ## signs in macros, 11-2
double hash signs ## in macros, 11-13
double-precision, 7-5
                                                       17-4
double-quotes in strings, 9-5
doubleword pointer initialization, 9-5
DQ directive, 9-3
DQ example, 9-5
DT directive, 9-3
DT example, 9-5
DUP construct, 9-4
duplicate definitions, 9-9
DW directive, 9-3
DWORD override expression operator, 8-9
E switch, 3-3
EA byte, 6-4
eb specifier, 6-6
editing programs, 3-1
effective address codes table, 6-5
effective addresses, 6-1
effective addresses, encoding, 6-4
ELSE, 11-12
ELSEIF, 11-12
EM end-of-macro symbol, 11-1
emulation, floating-point, 7-2
encoding of effective addresses, 6-4
encoding of floating-point numbers, 8-2
END directive, 10-7
END in non-OBJ mode, 12-4
end of a macro, 11-1
end of file, 10-7
ENDIF, 11-12
ENDM, 12-3
ENDP directive, 9-11
ENDS directive, OBJ mode, 10-11
ENDS directives in COM mode, 9-2
English contact, 1-1
environment string, invocation equates in, 11-15
environment variable A86LIB, 13-5
environment variable, a86, 3-4
EQ expression operator, 8-8
EQ in comparing strings, 8-8
EQU directive, 9-8
equal-sign string compare, 8-9
equals-sign directive, 9-10
equates to built-in symbols, 9-8
equates to interrupts, 9-9
ER end-of-repeat symbol, 11-4
ERDEMO.BAT batch file, 2-1
ERR extension, 3-3
error file redirection, 3-3
error messages, 1-5
error messages, explanation, 14-1
evaluating macro operands, 11-8
EVEN directive, 9-3
ew specifier, 6-6
EX exit macro symbol, 11-10
examples of A86 statements, 4-1
examples of floating constants, 8-3
examples of numbers, 4-2
examples of type matching, 4-5
                                                       17-5
examples of useful memory accesses, 6-3
exclamation point operator, 8-7
exclusive features, 5-1
EXE programs, how to detect, 12-1
exiting from middle of macro, 11-10
EXITM simulation, 11-10
EXITM, 12-3
EXMAC demo, 2-2
EXMAC tool, 13-2
expansions of macros, displaying, 13-2
explicit EXTRNs, 3-4
explicit EXTRNs, forcing, 10-7
explicit OBJ specification, 10-1
explicit public names, 10-5
explicit WAITs, 7-1
exponent specifier, 8-2
expressions in conditional assembly, 11-11
expressions involving forward references, 9-7
extended-precision operands, 7-5
extensions of source files, 3-6
external names and LINK, 10-3
extra coprocessor support, 7-2
EXTRN directive, 10-6
EXTRNs, explicit, 3-4
F operator in EXTRN, 10-6
F override expression operator, 8-9
F switch, 3-3
f switch, 7-3
F6 to terminate file, 2-2
FAKE.EXE, 13-7
far label constants, 8-12
FAR override expression operator, 8-9
FBANK instruction on IIT-2C87, 7-2
FDISI instruction, 7-1
features, exclusive, 5-1
FENI instruction, 7-1
file containing symbols, 13-1
file in which a symbol was defined, 13-2
file lists, 3-6
file maintenance, 3-6
file names, digits in, 3-6
files, source, 3-1
finding symbol values, 13-2
FLD, immediate operand, 7-4
floating constants, examples of, 8-3
floating point operand types, 7-5
floating point operands, choices for, 7-6
floating point stack, 7-3
floating-point constants, format of, 8-2
floating-point emulation, 7-2
floating-point processor, 7-1
footprint, code generation, 1-3
forcing explicit EXTRNs, 10-7
forcing explicit EXTRNs, 3-4
forcing library lookup, 13-5
format of assembler source lines, 4-3
format of macros, 11-2
                                                       17-6
FORTRAN, 10-10
forward references, 12-2
forward references, 9-6
forward references, default, 3-4
fragments, 10-3
FSETPM instruction, 7-1
FSTSW AX form, 7-1
FWAIT instruction, 7-1
Gates, Bill, 13-7
GE expression operator, 8-8
generated code, displaying, 13-6
Great Britain contact, 1-1
greater-mark ">" for local symbols, 5-3
GROUP directive, 10-12
groups, reason for, 10-3
GT expression operator, 8-8
hash sign # in invocation, 13-5
hash sign #, conditional assembly, 11-11
hash signs # in macros, 11-13
hash signs # in macros, 11-2
hash signs #, literalizing in macros, 11-2
hexadecimal base, 8-1
HIGH operator, 8-4
high-level language computation models, 10-2
history of A86, 15-1
ib specifier, 6-6
IBM, 12-1
IBM-PC AT computer, 7-2
IEEE standard for floating-point, 8-2
IF conditional assembly symbol, 11-11
IF statement, 5-1
IFDIF, 12-3
IFE, 12-3
IFIDN, 12-3
IIT-2C87 support, 7-2
immediate operand to FLD, 7-4
implicit public names, 10-5
INC, multiple and numeric operands, 5-1
incentives to register, 1-3
INCLUDE, 12-4
indefinite repeats, 11-5
index expressions, 8-4
index registers, 6-2
indexed memory, 6-2
inferior assemblers, 12-1
inferior assemblers, porting to, 12-5
initializations of floating-point numbers, 7-4
instruction set chart, explanation, 6-6
instruction set, 87, 7-6
instruction statements, samples, 4-1
instructions, list of, 6-8
instructions, special, 6-7
integer operands to 8087, 7-5
Intel assembler, 12-1
Intel meeting, 10-3
interactive macro tool, 13-3
intermediate numeric results, 7-5
                                                       17-7
interrupt equates, 9-9
interrupts, grabbing, 12-2
invocation of A86, 3-1
invocation variables in environment string, 11-15
invocation variables, 11-14
IRET operand, 5-2
IRP and IRPC functionality, 11-1
IRP, 12-3
IRPC, 12-3
iw specifier, 6-6
juxtaposing terms in an expression, 8-5
keyboard entry coding example, 11-3
keywords, 4-2
L last-operand in macros, 11-5
L switch, 3-3
L2E and L2T constants, 7-4
LABEL directive, 9-11
labels, examples, 4-4
language, A86, 4-1
large constant initialization, 9-5
large macro operand numbers, 11-9
large model of segmentation, 10-2
last-operand in macros, 11-5
LE expression operator, 8-8
LEA instruction, optimizing, 3-3
LEA optimization, 5-4
leading underscore, in C, 10-1
legal terms, 1-1
length byte, generating in macro, 11-8
length of a symbol name, 4-2
LG2 constant, 7-4
line-format, 4-3
LINES.8 library file, 2-1
LINK program, 10-3
linkage, 10-1
list of instructions, 6-8
listing macros, 13-3
listing of 87 instructions, 7-6
listing of cross references, 13-1
listing of symbols, 13-1
listings with A86, 13-5
LN2 constant, 7-4
loading named segments, 12-2
local labels in macros, 11-10
local labels, simulating, 12-5
local symbols, 5-3
local symbols, specifying, 9-10
location, this, operator, 8-12
logical operators, 8-7
long default jump, 3-3
LONG expression operator, 8-9
looping in macros, 11-4
loops with large index, 11-9
LOW operator, 8-4
lower case letters in symbols, 3-2
LT expression operator, 8-8
m specifier, 6-6
                                                       17-8
macro compatibility, 12-2
macro exiting from within loop, 11-10
macro expansion demo, 2-2
macro expansions, displaying, 13-2
macro file, default, 3-5
macro loops, closing, 11-10
macro loops, skipping increments, 11-6
macro operand substitution, 11-2
macro operands, computing number, 11-9
macros and conditional assembly, 11-13
macros, 11-1
macros, defining, 11-1
mailing list, 1-4
main module, 10-3
MAIN symbol, 10-7
maintenance of files, 3-6
manual, scope of, 3-1
MASK, 12-4
MASM 8087/287 code generation, 7-1
MASM compatibility, 12-1
MASM compatible CODE, DATA, 10-11
MASM conditional assembly, simulating, 11-14
MASM, mimicking, 13-7
matching of types, examples, 4-5
matrix multiplication on IIT-2C87, 7-2
maximum length of a symbol name (127), 4-2
maximum source file size, 3-6
meeting at Intel, 10-3
MEMORY combine type, 10-10
memory forms, overlooked, 6-3
memory operand forms to 87 instructions, 7-4
memory requirements, 3-6
memory resident code, 12-2
memory variables, specifying, 6-1
menu systems and A86, 3-5
MEXP.BAT batch file, 2-2
Microsoft, 12-1
minus operator, 8-5
MIX tool, compatibility, 3-4
mixing constant types in word inits., 8-5
mnemonics, 8086, 6-8
mnemonics, one for many instructions, 4-4
MOD modulo operator, 8-6
model of segmentation, grotesque, 10-3
ModRM byte, 6-4
modular programming, encouraging, 13-6
module names, 10-5
modules, object, 10-3
Morse, Steve, 3-1
MOV of immediate value into segment reg, 5-2
MOV of memory operands, 5-2
MOV of segment registers, 5-2
MOV substitute for LEA, 5-4
MOV with three operands, 5-2
move-memory macro example, 11-1
MSDOS.8 library file, 2-1
MTCOLS.BAT batch file, 2-2
                                                       17-9
multiple allocation using DUP, 9-4
multiple files in OBJ mode, 10-1
multiple increments in macro loops, 11-6
multiple operands to PUSH,POP,INC,DEC, 5-1
multiply by 10 coding example, 10-1
multiply operator, 8-6
NAME directive, 10-5
NAME in non-OBJ mode, 12-4
name of output files, 3-2
NE expression operator, 8-8
NE in comparing strings, 8-8
NEAR expression operator, 8-11
NEC chips, lack of AAD with operands, 5-4
NEC chips, special instructions, 6-8
negation, Boolean, 8-7
negative R-loops in macros, 11-7
nested IF blocks, 11-12
nested PROCs, lack of, 9-10
nesting of loops in macros, 11-8
NIL prefix, 9-9
non-combinable segments, 10-10
NOP and EVEN directive, 9-3
Norton, Peter, 3-1
NOT expression operator, 8-7
null invocation names, 11-15
null operands to macros, 11-3
number operands in expressions, 8-4
numbers, examples, 4-2
numbers, examples, 8-1
numbers, floating, 8-2
numbers, format of, 8-1
numeric operands to INC,DEC, 5-1
O switch, 10-1
O switch, 3-2
O switch, 3-4
OBJ file generation, 3-4
OBJ internal optimization, 3-4
OBJ production made easy, 10-1
object file name, 3-2
object modules, 10-3
octal base, 8-1
OFFSET expression operator, 8-10
opcodes, 8086, 6-8
opcodes, 87, 7-6
operand choices for 87 instructions, 7-6
operand number, generating, 11-9
operand types to 87 instructions, 7-4
operating system requirements, 3-6
operation of A86, 3-1
operator precedence, 8-13
Optimized LEA instruction, 5-4
OR expression operator, 8-7
ORG directive, 9-2
outer segment, OBJ mode, 10-12
output files, naming, 3-2
overlooked memory forms, 6-3
overrides, segment, 12-2
                                                       17-10
overrides, segment, 6-3
overview of A86, 1-4
overview of expressions, 8-3
PAGE directive, 12-4
PAGE specifier, 10-9
PAGE.8 program, 2-1
PAGE.BAD source file, 2-1
PAGE.COM program, 2-1
PARA specifier, 10-9
parenthesized operand numbers, 11-9
Pascal segment names, 10-11
Pascal, linking to, 10-2
passing macro operands by value, 11-8
period operator, 8-5
permanent switch settings, 3-4
phone number, my, 1-1
phone numbers of my bulletin boards, 1-6
PI constant, 7-4
piping file names to A86, 3-5
plus operator, 8-5
POP, multiple operands, 5-1
port programs to inferior assemblers, 12-5
pound sign #, SEE hash sign
Power C, compatibility, 3-4
powers of ten, 8-2
precedence of operators, 8-13
prices, 1-2
printer eject program, 2-1
PROC directive, 9-10
procedure-level summary listings, 13-1
procedures, 9-10
program location operator, 8-12
program starting location, OBJ mode, 10-7
programs, how to create, 3-1
prompt for file names, 3-5
protected mode instructions, 6-7
PTR operator, 8-5
PUBLIC combine type, 10-9
PUBLIC directive, 10-5
public names and LINK, 10-3
PUSH multiple operands, simulating, 12-5
PUSH, multiple operands, 5-1
Q operator in EXTRN, 10-6
Q override expression operator, 8-9
question mark ?, in symbols, 4-2
question-mark operator, 9-4
quoted-string macro operands, 11-3
QWORD override expression operator, 8-9
R-loops in macros, 11-4
R-loops, negative, 11-7
RADIX directive, 8-2
rb register specifier, 6-7
RECORD, 12-4
red tape, 1-4
red tape, 10-1
redefinable symbols, 5-3
redefining invocation variables, 11-15
                                                       17-11
redefining symbols, 9-9
redirection of error files, 3-3
references to a symbol, 13-2
registers, 8086, 4-3
registers, general, 6-1
registration benefits, 1-3
registration benefits, 13-3
relational operators, 8-8
relocation and linkage, 10-1
repeating code using DUP, 9-4
REPT directive, simulating, 11-9
requirements, system, 3-6
reserved symbols, 16-1
RET instruction, meaning of, 9-10
RET operand, 5-2
RETF instruction and PROC, 9-10
RETF operand, 5-2
REV.8 source file, 2-1
REV.COM program, 2-1
reversing strings example, 2-1
revision history, 15-1
rw register specifier, 6-7
S switch, 3-4
samples of A86 statements, 4-1
scientific notation, 8-2
SEG operator, 10-13
SEGMENT AT, non-OMF, 12-4
SEGMENT directive, non-OBJ mode, 12-4
SEGMENT directive, OBJ mode, 10-8
segment override colon operator, 8-12
segment overrides, 12-2
segment overrides, 6-3
segment registers, default, 6-2
segmentation and memory access, 6-2
segmentation models, 10-2
segments in A86, 9-1
segments, loading named, 12-2
shareware distribution, 0-1
shifting expression operators, 8-6
SHL and SHR expression operator, 8-6
SHORT expression operator, 8-9
simple macro syntax, 11-1
single-precision, 7-5
size of macro operands, 11-8
size of source files, 3-6
size of structures, 8-12
slash division operator, 8-6
slash specifier, 6-4
small model of computation, 10-2
source files, 3-1
source libraries, 13-3
special instructions, 6-8
Specialty Software, 7-2
speed, 1-4
square brackets operator, 8-11
ST floating-point stack specifier, 8-12
STACK combine type, 10-9
                                                       17-12
STACK segment, relocatable, 10-11
stack segments in OBJ mode, 10-9
stack, floating point, 7-3
standard input and output, 13-3
standard input command tail, 3-5
starting location, OBJ mode, 10-7
strategies for file maintenance, 3-6
string allocation, 9-5
string comparison operators, 8-8
STRUC directive, 9-6
STRUC, implicit via SEGMENT AT, 12-4
structure initialization, 12-3
structure, based, example, 6-2
structured programming constructs, 5-1
structures and MASM, 12-3
structures, size of, 8-12
sub-directories of programs, 3-6
substitution of macro operands, 11-2
subtraction operator, 8-6
SUBTTL, 12-4
summary of procedure calls, 13-1
suppressing symbols file, 3-4
switches, assembler, 3-2
switches, combining, 3-4
switches, user-definable, 11-14
SYM extension, 3-2
symbol table file name, 3-2
symbols file, 13-1
symbols file, suppressing, 3-4
symbols listing, 13-1
symbols, allowable characters for, 4-2
symbols, redefining, 9-9
symbols, reserved, 16-1
system crashes on lack of FWAIT, 7-2
system requirements, 3-6
T operator in EXTRN, 10-6
T override expression operator, 8-9
table of contents, 0-3
table of effective address bytes, 6-5
tabs, diatribe against, 4-3
TBYTE override expression operator, 8-9
TCOLS.8 source file, 2-2
TCOLS.COM program, 2-2
telephone number, my, 1-1
telephone numbers of my bulletin boards, 1-6
terms, legal, 1-1
TEST with one operand, 5-4
Texas, 11-12
Texas, 11-14
TEXT segment name, 10-12
THIS operator, 8-12
tips for memory access, 6-3
TITLE, 12-4
TO in invocation, 3-2
Turbo C, using A86 with, 13-7
Turbo Pascal segment names, 10-11
Turbo Pascal, linking to, 10-2
                                                       17-13
type display of symbols, 13-1
type matching, examples, 4-5
TYPE operator, 8-12
types in the a86 language, 4-3
types, assumed, 10-2
undefined symbol types, assumed, 10-2
undefined symbols listing in OBJ mode, 10-6
underscore, in symbols, 4-2
underscore, leading, in C, 10-1
underscores within numbers, 8-1
unusable user symbols, 16-1
up arrow symbol and invocation equates, 11-15
USAGE.8 library file, 2-1
value, passing by, 11-8
values of symbols, 13-2
variable forward references, 9-7
variable operands in expressions, 8-4
variables declared at invocation, 11-14
variables, 9-10
variables, examples, 4-3
verbose forms, floating point, 7-3
verbose PROC, 9-11
version history, 15-1
W operator in EXTRN, 10-6
W override expression operator, 8-9
WAIT instruction, 7-1
Wettstein, Greg, 1-6
WIDTH, 12-4
wild cards in source files, 3-2
wild cards, order of, 3-6
WORD align type, 10-9
WORD override expression operator, 8-9
WORD PTR, 12-6
X specifier for numeric bases, 8-1
X switch, 10-7
X switch, 3-4
XCHG of memory operands, 5-2
XCHG with segment register, 5-2
XOR expression operator, 8-7
XREF and conditional assembly, 11-14
XREF demo, 2-2
XREF tool, 13-1
XRF extension, 13-1
