Возможно ли выполнение 32-битного кода в 64-битном процессе путем переключения режимов?

На этой странице http://www.x86-64.org/pipermail/discuss/2004-August/005020.html Он сказал, что есть способ смешать 32-битный код и 64-битный код в приложении. Он предположил, что приложение является 32-битным (в режиме совместимости), а затем переключился в 64-битный режим для выполнения 64-битного кода и наоборот.

Предположим, что моя ОС - 64-битная Linux, а мое приложение - 64-битное. Я делаю большой прыжок, чтобы переключиться в режим совместимости и выполнить 32-битный код. Может ли он правильно работать, когда я выполняю системный вызов или вызов функции?

Есть ли накладные расходы на переключение режима между режимом совместимости и 64-битным режимом? Я думаю, что одним из накладных расходов является то, что мне нужен отдельный стек для 32-битной и 64-битной систем.

Могу ли я интегрировать эту идею в JVM, возможно, я могу динамически генерировать 32-битный код в 64-битной JVM, и выполнить его переключением режима?

7
задан Hsiao-Hui Chiu 23 February 2011 в 11:32
поделиться