Здравствуйте, я столкнулся с проблемой, кажется, что nasm мешает мне, но я хочу спросить, есть ли решение, о котором я не знаю в nasm. Я программирую на Intel x86, создавая COM-файлы.
В моей программе положение вещей не указано c, поэтому я использую bp для вычисления правильного смещения вещей. Например, если я хочу получить доступ к буферу переменных, я использую lea dx, [bp + buffer]
Так что в моем коде я хочу использовать условные переходы для указания c меток в коде, но, поскольку местоположение программы меняется, я хотел сделать что-то вроде этого: jc [bp + EXIT]
, загрузка в регистр тоже не работает.
Где в этом примере EXIT будет частью, где программа закрывается. Но я хочу перейти к множеству разных мест в коде, а не просто к выходу.
Итак, я спрашиваю, есть ли что-то, что позволяет мне делать условные переходы по динамическим адресам памяти, которые являются динамическими c относительно БП? То есть они работают, даже если местоположение кода изменится в памяти позже? Если нет, то какое было бы лучшее решение для такого поведения?