Встроенная сборка в c для получения текущего времени, имени пользователя и имени машины - PullRequest
1 голос
/ 10 апреля 2019

Я хочу написать функцию для моей пользовательской оболочки, которая выводит текущее время, имя пользователя и имя машины в виде приглашения. Я хочу сделать это с помощью встроенной сборки в 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

Вопрос в том, как мне написать код во встроенной сборке, чтобы узнать текущее время, имя пользователя и имя машины?

...