IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Условный переход, В чем ошибка?
CMOS
сообщение 21.05.2006 14:42
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


Объясните, почему происходит ошибка на переходе

Код
mov ax, 3
int 33h

push bx
cmp    bx, but
je return

Relative jump out fo range by 0013h bytes

На любую другую метку переходит нормально
В других местах программы переход на эту метку тоже проходит

Код
...
int 10h
jmp return
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 21.05.2006 15:13
Сообщение #2


Гость






Потому что JMP - это абсолютный прыжок, а JE - относительный (relative jump)... А "дальность" относительного прыжка ограничена 127 байтами вперед и 128 байтами назад.

Значит, до метки return больше 128 байт (на 13h, то есть метка - на расстоянии 147 байт от места вызова JE)...

smile.gif
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 28.07.2025 6:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"