Как аппаратное обеспечение и компилятор обрабатывают инструкцию x86, переходящую в неисполняемую страницу?

В отличие от (большинства) RISC-арок, инструкции x86 имеют переменную длину. Начало / конец инструкции не обязательно выравнивать. Если компилятор этого не делает, одна инструкция может просто лежать на краю страницы.

Предположим, что если первый байт инструкции находится в последнем байте страницы, который помечен как исполняемый. Остальные байты инструкции находятся на второй странице,который отмечен как неисполняемый.

В таком случае, что произойдет в ЦП, когда выполнение достигнет этой инструкции?

Нужно ли компилятору заботиться о таких случаях?

6
задан Michael Petch 20 October 2016 в 16:18
поделиться