Relative jump out of range by 000Fh bytes

Тема в разделе "WASM.ASSEMBLER", создана пользователем EvilsInterrupt, 5 сен 2004.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    В 1.asm есть место:



    ; cmp flag_execute,3

    ; je short crypt_bits



    На которое ассемблер говорит превышен jmp на 0fh байт!

    Пробывал je near crypt_bits,но меня учат так:

    Expecting pointer type



    Можно ли обойти это как-нить?



    ЗЫ: Ну, а где оптимизировать можно тоже буду рад!

    [​IMG] 1629998851__crypt.asm
     
  2. zzzyab

    zzzyab New Member

    Публикаций:
    0
    Регистрация:
    13 май 2004
    Сообщения:
    115
    Зачем такая куча процессорных директив ? И оно не работает без macro.lib - загрузи и его.
     
  3. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    А просто

    je crypt_bits ?
     
  4. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    stas

    НЕа не работает, сегдня ночью не заработает кину код тебе на мыл
     
  5. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
  6. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Это глюк какой-то.

    Очевидно же, что в первом случае компилер ругался на слишком большое расстояние для короткого перхода.

    Но на что он ругался во втором?

    Может в TASM какая-то своя специфика..



    Зачем .386 и .286 по всему файлу раскидал, может из-за этого проблемы?

    Поставь в начале файла .386 да и всё.
     
  7. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    S_T_A_S_

    Некоторых, действительно можно было бы избежать. Но это мой первый опыт с инструкциями 386 проца! Так что первый блин всегда глюком
     
  8. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    "Может в TASM какая-то своя специфика.."

    Возможно. Помнится в TP и дельфах было примечание, что все условные переходы у них рассматриваются как short и если нужен near переход, то следует использовать комбинацию:
    Код (Text):
    1. jne @@
    2. jmp crypt_bits
    3. @@:
     
  9. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Ребята вы чего ? Всю жизнь условные команды были с short адресом. По крайней мере до 486-го.
     
  10. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    И чо теперь всю жизнь такое извращение применять?
     
  11. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Ну сказал же знающий чаловек - делай .486
     
  12. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105




    Имелось ввиду до 486 включительно. Информация взята из программы TechInfo 6.0( для ДОС-а) и там Пентиум тоже упоминается, но я не стал рисковать.....

    У Интела все процессоры с этой гадостью : например, 8051.
     
  13. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    А вот что говорит Книга Двойных Слов:

    <font size=1>The following instructions were added in the Intel386 processor:

    ...

    -- Long-displacement conditional jumps.

    ...</font><!--size-->
     
  14. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    valterg >




    Ну не совсем все, в i8080 вообще не было ни коротких, ни относительных переходов.





    captain cobalt



    Это наверное какая-то старая книга. Те, которые присылают по почте, этого не содержат.
     
  15. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    Напротив, это самая новая книга. Из комплекта, в котором второй том занимает две книги. Это цитата из VOLUME 3, CHAPTER 18, IA-32 COMPATIBILITY.
     
  16. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105


    Это все хорошо, только мне кажется,

    что это все требует 32-бит.

    http://astalalista.20fr.com/it/intel3864.html

    А это из hiew :

    ===================================

    00000000: 0F800000 jo 000000004

    00000004: 0F810000 jno 000000008

    00000008: 0F820000 jb 00000000C

    0000000C: 0F830000 jae 000000010

    00000010: 0F840000 je 000000014

    00000014: 0F850000 jne 000000018

    00000018: 0F860000 jbe 00000001C

    0000001C: 0F870000 ja 000000020

    <font color="red] 00000020: 7502 jne 000000024 !!!!</font><!--color--> 00000022: 0F880000 js 000000026

    00000026: 0F890000 jns 00000002A

    0000002A: 0F8A0000 jp 00000002E

    0000002E: 0F8B0000 jnp 000000032
     
  17. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    valterg >




    Зачем 32? если 16-битный режим, то команда будет 4 байта.





    EvilsInterrupt



    Юзал бы ты FASM, не было б никаких проблем:
    Код (Text):
    1.  
    2. jnz foo
    3. rb 500
    4. foo:
    5.  
    6. 0F 85 F4 01






    captain cobalt >




    Гм, туплю, у мя на столе тока 2-й том и optimization manual.

    Проще же спросить на форуме, чем идти до полки :).
     
  18. Privalov

    Privalov New Member

    Публикаций:
    0
    Регистрация:
    16 апр 2004
    Сообщения:
    16
    Знаете директиву jumps?
     
  19. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    На фасм переходить не буду, по крайней мере не сейчас. Так как по мимо хоби есть еще работа, а так как на всякое дело надо время то возникают проблемы.



    ЗЫ: Прошу прощения, но уже третий человек с ВО мне не может сказать однозначно, что такое "квинтэсенция"?
     
  20. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Privalov

    Я не знаю, а что это ?

    (если можно - в двух словах без ссылок на литературу)