Разница между длинным и коротким прыжком (x86)
Я читал, что короткие прыжки должны использоваться, когда относительный переход меньше адреса в 124, и длинные прыжки должны использоваться в противном случае.
В чем разница с точки зрения операций, выполняемых в ЦП / производительности между двумя типами переходов на x86?
1 ответ
Есть на самом деле три типа JMP
инструкции; короткий, ближний и дальний (длинный).
Короткая JMP
это родственник JMP
что вы ссылаетесь. Он кодируется как два байта; Настоящий JMP
и количество байтов +/- относительно текущего IP.
Ближний переход позволяет вам переходить в пределах текущего "сегмента" (используя термины реального режима) или в пределах текущей выбранной области памяти в селекторе CS.
Длинный или дальний JMP
дополнительно включает селектор (или сегмент в реальном режиме)
Вы можете посмотреть время для себя. Самое большое различие, связанное со временем, вызвано различным количеством байтов, которые должны быть прочитаны, чтобы выполнить JMP
,