· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Relative jump out of range by 000Fh bytes

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Сен 5, 2004 19:48:34

В 1.asm есть место:

; cmp flag_execute,3
; je short crypt_bits

На которое ассемблер говорит превышен jmp на 0fh байт!
Пробывал je near crypt_bits,но меня учат так:
Expecting pointer type

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

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

1629998851__crypt.asm


Дата: Сен 5, 2004 20:47:59

Зачем такая куча процессорных директив ? И оно не работает без macro.lib - загрузи и его.


Дата: Сен 5, 2004 21:25:25

А просто
je crypt_bits ?


Дата: Сен 5, 2004 22:16:12

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


Дата: Сен 5, 2004 22:42:34

Решил, но абсолютно по идиотски

1600986687__crypt.asm


Дата: Сен 5, 2004 23:00:45

Это глюк какой-то.
Очевидно же, что в первом случае компилер ругался на слишком большое расстояние для короткого перхода.
Но на что он ругался во втором?
Может в TASM какая-то своя специфика..

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


Дата: Сен 6, 2004 08:53:52

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


Дата: Сен 6, 2004 08:55:27 · Поправил: leo

"Может в TASM какая-то своя специфика.."
Возможно. Помнится в TP и дельфах было примечание, что все условные переходы у них рассматриваются как short и если нужен near переход, то следует использовать комбинацию:
jne @@
jmp crypt_bits
@@:


Дата: Сен 6, 2004 09:18:53

Ребята вы чего ? Всю жизнь условные команды были с short адресом. По крайней мере до 486-го.


Дата: Сен 6, 2004 13:09:52

И чо теперь всю жизнь такое извращение применять?


Дата: Сен 6, 2004 18:21:37

Ну сказал же знающий чаловек - делай .486


Дата: Сен 7, 2004 13:25:01

„Ну сказал же знающий чаловек - делай .486“

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


Дата: Сен 7, 2004 20:48:55

А вот что говорит Книга Двойных Слов:
The following instructions were added in the Intel386 processor:
...
-- Long-displacement conditional jumps.
...


Дата: Сен 8, 2004 04:12:11

valterg > „У Интела все процессоры с этой гадостью : например, 8051.“

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


captain cobalt

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


Дата: Сен 8, 2004 07:27:01

Напротив, это самая новая книга. Из комплекта, в котором второй том занимает две книги. Это цитата из VOLUME 3, CHAPTER 18, IA-32 COMPATIBILITY.

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.108