Yes, it's a known bug, the problem is with the output of objdump.
We need to write a tool to assemble.

Daniel Grunblatt.


On Sat, 2 Feb 2002, Mattia Barbon wrote:

> I'm sorry if this is a known bug.
> my.pasm ( useless, just a contrived example ):
>         set I1, 12
> FOO:
>         if I1, FOO
> BAR:
>         if I1, BAR
>         if I1, FOO
>         end
>
> assembly:
> 0x816bda8:      push   %ebp
> 0x816bda9:      mov    %esp,%ebp
> 0x816bdab:      int3
> 0x816bdac:      movl   $0xc,0x815150c
> 0x816bdb6:      mov    %esi,%esi
> 0x816bdb8:      mov    0x815150c,%eax
> 0x816bdbd:      cmp    $0x0,%eax
> 0x816bdc0:      jne    0x816bdb7    <== wrong
> 0x816bdc6:      nop
> 0x816bdc7:      mov    0x815150c,%eax
> 0x816bdcc:      cmp    $0x0,%eax
> 0x816bdcf:      jne    0x816bdc6    <== correct
> 0x816bdd5:      nop
> 0x816bdd6:      mov    0x815150c,%eax
> 0x816bddb:      cmp    $0x0,%eax
> 0x816bdde:      jne    0x816bdb7   <== wrong
> 0x816bde4:      nop
> 0x816bde5:      leave
> 0x816bde6:      ret
>
> If I move the "set I1, 12" after the foo label,
> both jumps are correct.
>
> Regards
> Mattia
>

Reply via email to