summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/nasmdoc.src4
-rw-r--r--nasm.h2
-rw-r--r--ndisasm.c14
-rw-r--r--outelf.c8
4 files changed, 14 insertions, 14 deletions
diff --git a/doc/nasmdoc.src b/doc/nasmdoc.src
index 66825ed..53e4b70 100644
--- a/doc/nasmdoc.src
+++ b/doc/nasmdoc.src
@@ -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
--- 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
diff --git a/ndisasm.c b/ndisasm.c
index 227dde7..71d07df 100644
--- 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");
}
}
diff --git a/outelf.c b/outelf.c
index 38f4a56..50cd36b 100644
--- 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);