Я пытаюсь прочитать память с помощью функции __readgsqword в Visual Studio 2017 и получаю сообщение об ошибке, в котором говорится, что идентификатор __readgsqword не определен, хотя я уже включил intrin.h.
#include "stdafx.h"
#include <intrin.h>
int main()
{
__readgsqword(88);
return 0;
}
Я не понимаю, почему он говорит undefined, хотя он определен внутри intrin.h





Доступен только в режиме x64. Если вы не изменили архитектуру ЦП в решении, оно будет недоступно.
Кстати, даже для меньших размеров операндов MS документирует эти встроенные функции только для 64-битного режима. docs.microsoft.com/en-us/cpp/intrinsics/…. Это странно, потому что лежащие в основе инструкции работают одинаково в 32-битном режиме. Вы ожидаете, что будет недоступен только
__readgsqword(потому что он также требует 64-битного размера операнда или MMX или SSE для выполнения в одной инструкции).