NASM 0.98.17
authorH. Peter Anvin <hpa@zytor.com>
Tue, 30 Apr 2002 21:04:18 +0000 (21:04 +0000)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 30 Apr 2002 21:04:18 +0000 (21:04 +0000)
doc/nasmdoc.src
nasm.h
ndisasm.c
outelf.c

index 66825ed..53e4b70 100644 (file)
@@ -7920,8 +7920,8 @@ destination (first) operand.
 \c MOVSW                         ; o16 A5               [8086]
 \c MOVSD                         ; o32 A5               [386]
 
-\c{MOVSB} copies the byte at \c{[ES:DI]} or \c{[ES:EDI]} to
-\c{[DS:SI]} or \c{[DS:ESI]}. It then increments or decrements
+\c{MOVSB} copies the byte at \c{[DS:SI]} or \c{[DS:ESI]} to
+\c{[ES:DI]} or \c{[ES:EDI]}. It then increments or decrements
 (depending on the direction flag: increments if the flag is clear,
 decrements if it is set) \c{SI} and \c{DI} (or \c{ESI} and \c{EDI}).
 
diff --git a/nasm.h b/nasm.h
index 0d0fa5b..89705c6 100644 (file)
--- a/nasm.h
+++ b/nasm.h
@@ -13,7 +13,7 @@
 
 #define NASM_MAJOR_VER 0
 #define NASM_MINOR_VER 98
-#define NASM_VER "0.98.16"
+#define NASM_VER "0.98.17"
 
 #ifndef NULL
 #define NULL 0
index 227dde7..71d07df 100644 (file)
--- a/ndisasm.c
+++ b/ndisasm.c
@@ -235,7 +235,7 @@ int main(int argc, char **argv)
        p += lenread;
        if ((unsigned long)offset == nextsync) {
            if (synclen) {
-               printf("%08lX  skipping 0x%lX bytes\n", offset, synclen);
+               fprintf(stdout, "%08lX  skipping 0x%lX bytes\n", offset, synclen);
                offset += synclen;
                skip (synclen, fp);
            }
@@ -271,26 +271,26 @@ static void output_ins (unsigned long offset, unsigned char *data,
                        int datalen, char *insn) 
 {
     int bytes;
-    printf("%08lX  ", offset);
+    fprintf(stdout, "%08lX  ", offset);
 
     bytes = 0;
     while (datalen > 0 && bytes < BPL) {
-       printf("%02X", *data++);
+       fprintf(stdout, "%02X", *data++);
        bytes++;
        datalen--;
     }
 
-    printf("%*s%s\n", (BPL+1-bytes)*2, "", insn);
+    fprintf(stdout, "%*s%s\n", (BPL+1-bytes)*2, "", insn);
 
     while (datalen > 0) {
-       printf("         -");
+       fprintf(stdout, "         -");
        bytes = 0;
        while (datalen > 0 && bytes < BPL) {
-           printf("%02X", *data++);
+           fprintf(stdout, "%02X", *data++);
            bytes++;
            datalen--;
        }
-       printf("\n");
+       fprintf(stdout, "\n");
     }
 }
 
index 38f4a56..50cd36b 100644 (file)
--- a/outelf.c
+++ b/outelf.c
@@ -554,7 +554,7 @@ static void elf_add_reloc (struct Section *sect, long segment,
        r->symbol = 0;
        for (i=0; i<nsects; i++)
            if (segment == sects[i]->index)
-               r->symbol = i+3;
+               r->symbol = i+2;
        if (!r->symbol)
            r->symbol = GLOBAL_TEMP_BASE + raa_read(bsym, segment);
     }
@@ -928,13 +928,13 @@ static struct SAA *elf_build_symtab (long *len, long *local)
      * Now some standard symbols defining the segments, for relocation
      * purposes.
      */
-    for (i = 1; i <= nsects+1; i++) {
+    for (i = 1; i <= nsects; i++) {
        p = entry;
        WRITELONG (p, 0);              /* no symbol name */
        WRITELONG (p, 0);              /* offset zero */
        WRITELONG (p, 0);              /* size zero */
        WRITESHORT (p, 3);             /* local section-type thing */
-       WRITESHORT (p, (i==1 ? SHN_ABS : i-1));   /* the section id */
+       WRITESHORT (p, i);             /* the section id */
        saa_wbytes (s, entry, 16L);
        *len += 16;
        (*local)++;
@@ -992,7 +992,7 @@ static struct SAA *elf_build_reltab (long *len, struct Reloc *r) {
        long sym = r->symbol;
 
        if (sym >= GLOBAL_TEMP_BASE)
-           sym += -GLOBAL_TEMP_BASE + (nsects+3) + nlocals;
+           sym += -GLOBAL_TEMP_BASE + (nsects+2) + nlocals;
 
        p = entry;
        WRITELONG (p, r->address);