Я хочу написать функцию для моей пользовательской оболочки, которая выводит текущее время, имя пользователя и имя машины в виде приглашения. Я хочу сделать это с помощью встроенной сборки в C на Linux. Пока мой код:
uint64_t msr;
asm volatile ( "rdtsc\n\t" // Returns the time in EDX:EAX.
"shl $32, %%rdx\n\t" // Shift the upper bits left.
"or %%rdx, %0" // 'Or' in the lower bits.
: "=a" (msr)
:
: "rdx");
Я зашел так далеко и не пытался написать код для имени пользователя и имени машины. Проблема в том, что этот код не хочет компилироваться с использованием компилятора gcc, он печатает
ошибка: невозможно зарегистрировать ограничение в `asm '
сбит с толку более ранними ошибками, спасает
Я нашел этот код в качестве примера здесь:
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#AssemblerTemplate
Вопрос в том, как мне написать код во встроенной сборке, чтобы узнать текущее время, имя пользователя и имя машины?