June 29, 2002 buglet in obj2asm, branches fall a tad short | ||||
---|---|---|---|---|
| ||||
While perusing obj2asm output, I was initially perplexed
by branches that appeared to land in the middle of
instructions. Further study shows that the real problem
is an error in the disassembly. Here is an example.
Partial disassembly of the medium model C startup code:
002b: 81 FB 00 10 cmp BX,01000h
002f: 72 03 jb $+4h
0031: BB FF 0F mov BX,0FFFh
0034: 8B D0 mov DX,AX
0036: 03 D3 add DX,BX
Note that the jb target is off by -1. (The 03 operand
is added to the IP for the following instruction.) It
should read "... jb $+5h" to conform to conventional
meaning of the '$' notation.
--
-Larry Brasfield
(address munged, s/sn/h/ to reply)
|
July 01, 2002 Re: buglet in obj2asm, branches fall a tad short | ||||
---|---|---|---|---|
| ||||
Posted in reply to Larry Brasfield | Thanks. I'll check it out. -Walter "Larry Brasfield" <larry_brasfield@snotmail.com> wrote in message news:MPG.178799f14ffbe8a2989681@news.digitalmars.com... > While perusing obj2asm output, I was initially perplexed > by branches that appeared to land in the middle of > instructions. Further study shows that the real problem > is an error in the disassembly. Here is an example. > > Partial disassembly of the medium model C startup code: > 002b: 81 FB 00 10 cmp BX,01000h > 002f: 72 03 jb $+4h > 0031: BB FF 0F mov BX,0FFFh > 0034: 8B D0 mov DX,AX > 0036: 03 D3 add DX,BX > > Note that the jb target is off by -1. (The 03 operand > is added to the IP for the following instruction.) It > should read "... jb $+5h" to conform to conventional > meaning of the '$' notation. > > -- > -Larry Brasfield > (address munged, s/sn/h/ to reply) |
Copyright © 1999-2021 by the D Language Foundation