Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/119: Рейтинг темы: голосов - 119, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 21.01.2010
Сообщений: 3

Relative jump out of range by ... bytes

21.01.2010, 16:52. Показов 25574. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задача на определенную клавишу совершать некое действие. При компиляции Tasm начинает ругаться вот таким образом:
1)Relative jump out of range by 0003h bytes
2)Relative jump out of range by 0015h bytes
3)Relative jump out of range by 0027h bytes
4)Relative jump out of range by 0039h bytes
Вот кусок исходника, на который ругается :
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
       mov ah, 0         ;считать код с клавиши
        int 16h
        cmp ah, 20h       ;клавиша 1
        je Act_1          ;если да - переход на обработку
        cmp ah, 20h       ;клавиша 2
        jnz Act_2       
        cmp ah, 21h       ;клавиша 3
        je Act_3       
        cmp ah, 22h       ;клавиша 4
        jnz Act_4       
        cmp ah, 23h       ;клавиша 5
        je Act_5       
        cmp ah, 24h       ;клавиша 6
        je Act_6       
        cmp ah, 25h       ;клавиша 7  
        jnz Act_7       
        cmp ah, 26h       ;клавиша 8
        jnz Act_8
        cmp ah, 1Eh
        je Exit
если убрать код начиная с "клавиша 5", то все работает без проблем.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.01.2010, 16:52
Ответы с готовыми решениями:

Relative jump out of range by __ bytes
Relative jump out of range by __ bytes (Адрес назначения условного перехода превышает допустимый предел на __ байт) Адрес...

Ошибка "Relative jump out of range by 002Bh bytes"
Нужно отсортировать элементы матрицы по возрастанию, которые принадлежат указанному в варианте траектории. .x...... m -max эл-т...

Relative jump out of range
relative jump out of range 0008h bytes говорит мне ошибку на строке где по сути вызываю макрос. причем до этого вызываю его два раза и...

25
 Аватар для dserp18
28 / 13 / 1
Регистрация: 20.01.2013
Сообщений: 145
Записей в блоге: 8
13.10.2018, 20:41
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Constantin Cat Посмотреть сообщение
а можно просто включить второй проход, и компилятор все сам за Вас сделает.
Использую параметр /M[число_проходов] для включения многопроходного режима. Получаю ошибку "Relative jump..."
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
13.10.2018, 21:11
Команды Jcc, априори короткие +127:-128 = <КОП>:байт <смещение>:байт и все.

Я Вам писал о:
JMP SHORT LABEL(<КОП>:байт <смещение>:байт) и
JMP LABEL(<КОП>:байт <смещение>:младший байт <смещение>:старший байт).
Компилятор, при многопроходном режиме, должен автоматически создать код типа JMP SHORT LABEL, вместо JMP LABEL (если расстояние перехода попадает в диапазон +127 -128).
1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8675 / 4512 / 1670
Регистрация: 01.02.2015
Сообщений: 13,947
Записей в блоге: 14
13.10.2018, 21:12
Там для x32, но смысл понятен.Аналог Switch в masm
Один из способов будет более оптимальным.
1
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6817 / 2056 / 239
Регистрация: 14.12.2014
Сообщений: 4,320
Записей в блоге: 12
14.10.2018, 11:56
Цитата Сообщение от Constantin Cat Посмотреть сообщение
Команды Jcc, априори короткие +127:-128 = <КОП>:байт <смещение>:байт и все.
В 386+ есть ещё -32'768..+32'767 и -2'147'483'648..+2'147'483'647.

Цитата Сообщение от dserp18 Посмотреть сообщение
Использую параметр /M[число_проходов] для включения многопроходного режима. Получаю ошибку "Relative jump..."
Кота код в студию, плиз!
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
14.10.2018, 13:18
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Один из способов будет более оптимальным.
Код ТР
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  a,b:integer;
begin
  case a of
    1:inc(b);
    2:dec(b);
    else b:=0;
    end;
  if a=1 then inc(b) else
    if a=2 then dec(b) else
      b:=0;
end.
превращается в:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        mov ax, A
        cmp ax, 1
        jnz loc_1001D
        inc B
        jmp short loc_1002D
loc_1001D:
        cmp ax, 2
        jnz loc_10028
        dec B
        jmp short loc_1002D
loc_10028:
        xor ax, ax
        mov B, ax
 
loc_1002D:
        cmp A, 1
        jnz loc_1003A
        inc B
        jmp short loc_1004C
loc_1003A:
        cmp A, 2
        jnz loc_10047
        dec B
        jmp short loc_1004C
loc_10047:
        xor ax, ax
        mov B, ax
loc_1004C:
Вы заметили разницу(кроме: cmp A, 1 и mov ax, A / cmp ax, 1)
По своей сути паскалевский оператор CASE - некоторый аналог макроса, который делает код легко читаемым, по сравнению с каскадом IF.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16377 / 7689 / 1080
Регистрация: 11.11.2010
Сообщений: 13,769
20.10.2018, 11:02
Постигаем Си глубже, используя ассемблер
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.10.2018, 11:02

Illegal indexing mode и Relative jump out of range
**Error** urkin.asm(111) READW(33) Illegal indexing mode **Error** urkin.asm(114) Relative jump out of range by 000Bh bytes .model...

Ошибка "relative jump out of range by 0007h", как исправить?
keypressed: mov AH, 06h ;функция dos mov DL, 0FFh ;ввод символа из буфера клавиатуры без ожидания int 21h cmp AL, 27 ;Esc ...

tasm, "Relative jump out of range "
Подскажите, пожалуйста, что делать в таком случае: при компиляции выскакивает такая ошибка &quot;Relative jump out of range&quot; и...

Jump out of range
Здравствуйте, в чем причина такой вот ошибки? Пример кода. l1: cmp al, 0 je is0: cmp al, 1 je is1

Jump out of range. Нужна консультация.
Доброго времени суток! Программа считывает из файла строку, обрабатывает и заносит результат в другой файл. При трансляции возникают 2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru