Вроде как туда. Возможно, ошибка в Боше -- все они прилично глючные... Если на реальном железе отрабатывает нормально, значит, проблема именно в нём. Но, может, это где-то ошибка в Вашем коде:
Цитата:
In 64-bit mode, an address is considered to be in canonical form if address bits 63
through to the most-significant implemented bit by the microarchitecture are set to
either all ones or all zeros.
Intel 64 architecture defines a 64-bit linear address. Implementations can support
less. The first implementation of IA-32 processors with Intel 64 architecture supports
a 48-bit linear address. This means a canonical address must have bits 63 through 48
set to zeros or ones (depending on whether bit 47 is a zero or one).
Если устанавливается старший реальный бит линейного адреса (47), то должны быть установлены и все более старшие биты. Фактически линейный адрес трактуется как число со знаком -- бред, конечно, но вся архитектура ИА-32 бредовая с самого начала...