Нужно запустить аппаратный блок 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?
|