Относительный адрес предоставляется программистом. Обычно это вычисляется ассемблером по меткам.
Ваш файл asm будет содержать:
...asm code
...asm code
JB some_bit, some_label
...more asm code
...more asm code
...more asm code
some_label:
...more asm code
...more asm code
Ассемблер проанализирует код между инструкцией JB и меткой и вычислит количество байтов смещения, необходимое для получения метки, это число, которое он передает в инструкцию JB.
Здесь - хорошее объяснение инструкций 8051.