NASM 0.98.08
[nasm.git] / README03.txt
blob8d3539082676c5d0a3269331de39a756ab70e4fe
2                     README
3           NASM, the Netwide Assembler
6  Changes from 0.98 release to 98.03 as of 27-Jul-2000
7  ====================================================
9 1. Added signed byte optimizations for the 0x81/0x83 class
10 of instructions: ADC, ADD, AND, CMP, OR, SBB, SUB, XOR:
11 when used as 'ADD reg16,imm' or 'ADD reg32,imm.'  Also
12 optimization of signed byte form of 'PUSH imm' and 'IMUL
13 reg,imm'/'IMUL reg,reg,imm.'  No size specification is needed.
15 2. Added multi-pass JMP and Jcc offset optimization.  Offsets
16 on forward references will preferentially use the short form,
17 without the need to code a specific size (short or near) for
18 the branch.  Added instructions for 'Jcc label' to use the
19 form 'Jnotcc $+3/JMP label', in cases where a short offset
20 is out of bounds.  If compiling for a 386 or higher CPU, then
21 the 386 form of Jcc will be used instead.
23 This feature is controlled by a new command-line switch: "O",
24 (upper case letter O).  "-O0" reverts the assembler to no
25 extra optimization passes, "-O1" allows up to 5 extra passes,
26 and "-O2"(default), allows up to 10 extra optimization passes.
28 3. Added a new directive:  'cpu XXX', where XXX is any of: 
29 8086, 186, 286, 386, 486, 586, pentium, 686, PPro, P2, P3 or
30 Katmai.  All are case insensitive.  All instructions will
31 be selected only if they apply to the selected cpu or lower.
32 Corrected a couple of bugs in cpu-dependence in 'insns.dat'.
34 4. Added to 'standard.mac', the "use16" and "use32" forms of
35 the "bits 16/32" directive. This is nothing new, just conforms
36 to a lot of other assemblers. (minor)
38 5. Changed label allocation from 320/32 (10000 labels @ 200K+) 
39 to 32/37 (1000 labels); makes running under DOS much easier.
40 Since additional label space is allocated dynamically, this
41 should have no effect on large programs with lots of labels.
42 The 37 is a prime, believed to be better for hashing. (minor)
44 6. Integrated patchfile 0.98-0.98.01.  I call this version
45 0.98.03, for historical reasons:  0.98.02 was trashed.
47 --John Coffman <johninsd@san.rr.com>               27-Jul-2000
49 (end)