A17

  • September 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View A17 as PDF for free.

More details

  • Words: 2,920
  • Pages: 26
INDEX 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-1

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

Related Documents

A17
September 2019 5