when i use JMP(acctually i used JE) in one of my programs...i get an error saying that the Condition Jump is out of range!
how can i fix this??

Thanks in advance
Posted on 2002-07-28 03:07:34 by rkinasz
It sound to like the jump points to an address wich is beyond the end of the file.
From an intel instruction reference PDF:
"Unconditionally transfers control to "label". Jumps by default are within -32768 to 32767 bytes from the instruction following the jump. NEAR and SHORT jumps cause the IP to be updated while FAR jumps cause CS and IP to be updated. "

Try to use "je far", maybe that'll help.
Posted on 2002-07-28 05:06:35 by scientica
Are you using Nasm?
Try replacing:

Je somelabel
with
Je NEAR somelabel
Posted on 2002-07-28 10:06:49 by assant
Tjena scientica :)
For more updated info:

On 32bit PMODE (i.e. what we use in Win32 programming) a Jxx can be either SHORT (signed 8 bit, i.e. -128..+127) or LONG (signed 32 bit, i.e. -2147483648..+2147483647).

Time ago I made experiments on prefixes to obtain also a 16 bit form, but now I don't recall if it was then really possible or not. :grin:

I like non-prefixed 32 bit more, iallafall. ;)
Posted on 2002-07-28 10:23:20 by Maverick
if your using je, try a
jne NEXT
jmp ifequal
Posted on 2002-07-28 16:42:23 by Qages
try with:

.IF condition
.... ..... <- instructions
call subroutine <- or subroutine

.ELSE (or ELSEIF)

.....

.ENDIF

...
Posted on 2002-07-28 18:11:14 by hunter
i am using a compiler for this that makes 16 bit applications....and the compiler doesnt support .if statements! is there a way i can write a .bin file for use with a boot loading program in 32 bit?
Posted on 2002-07-28 21:05:23 by rkinasz