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