![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
CMOS |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
Объясните, почему происходит ошибка на переходе
Код mov ax, 3 int 33h push bx cmp bx, but je return Relative jump out fo range by 0013h bytes На любую другую метку переходит нормально В других местах программы переход на эту метку тоже проходит Код ... int 10h jmp return |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Потому что JMP - это абсолютный прыжок, а JE - относительный (relative jump)... А "дальность" относительного прыжка ограничена 127 байтами вперед и 128 байтами назад.
Значит, до метки return больше 128 байт (на 13h, то есть метка - на расстоянии 147 байт от места вызова JE)... ![]() |
CMOS |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
Как исправить?
Может есть какие-то директивы? Жалко, что нету что-то вроде CASE |
Malice |
![]()
Сообщение
#4
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
CMOS |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
Все гениальное - просто. Как я сам не дотумкал?
Я так делал cmp ... je return1 ... return1: jmp return но твой способ, несомненно, лучше |
Гость |
![]()
Сообщение
#6
|
Гость ![]() |
В начале программы напиши
Dosseg .jumps и может прыгать хоть куда ошибки не будет |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 10:59 |