Нужно запустить аппаратный блок GEODE LX AES.
1. Не понятно с какого адреса начинается SB memory offset = 0. В документации явно не указано. Сам блок начинается с 0х58000000
2. Проблема с вычиткой регистров блока AES.
Пытаюсь вычитать с помощью ассемблера.
Алгоритм следующий:
загрузить в ЕСХ адрес, затем команда rdmsr, затем вычитка результата из EDX/EAX.
Непонятно по инлайн ассемблеру gcc для i386.
inline unsigned long myfunc ( void ) {
uint32_t temp =123;
__asm__ ( "mov %%ecx, 0x58002000" : : );
__asm__ ( "rdmsr" : : );
__asm__ ( "mov $0, %%eax" : : "r"(temp));
return temp;
}
Вычитывает одно и то же число для 0x58002000, 0x58002001, 0x58002002
Можно ли так напрямую вычитывать регистры Geode LX?