Каковы Абсолютные Операнды Дальнего Прыжка в X86 - PullRequest
0 голосов
/ 10 февраля 2019

Каковы операнды для выполнения абсолютного Far Jmp?

Я думаю, это должно выглядеть примерно так:

EA XX XX XX XX

Я пытался сделать XXXX XX XX 4-байтовый адрес, по которому я хотел перейти, но он не работал должным образом.

1 Ответ

0 голосов
/ 10 февраля 2019

Это будет абсолютный дальний переход.

Например, для 16-битного кода байты 0xEA, 0x12, 0x34, 0x56, 0x78 будут инструкцией jmp far 0x7856:0x3412 (где CPU попытается установитьCS для 0x6745 и установите IP в 0x3412).

Для 32-битного кода размер должен быть больше.Например, байты 0xEA, 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC будут инструкцией jmp far 0xBC9A:0x78563412 (где CPU попытается установить CS в 0xBC9A и установить EIP в 0x78563412).

Другими словами,операндами являются целевой 16-битный IP (или 32-битный EIP), за которым следует целевой сегмент кода;с обеими частями в порядке с прямым порядком байтов.

...