В памяти 0x100 и 0x104 находятся два 32-битных счетчика. Они представляют собой 64-битный таймер и постоянно увеличиваются.
Как правильно читать из двух адресов памяти и сохранять время как 64-битное целое?
Одно неверное решение:
x = High
y = Low
result = x << 32 + y
(Программа может быть заменена, а в то же время Low overflows...)
Дополнительные требования:
Используйте только C, нет сборки
Шина 32-битная, поэтому нет возможности прочитать их в одной инструкции.
Ваша программа может переключиться на контекст в любое время.
Нет доступных мьютексов или замков.
Некоторые объяснения высокого уровня в порядке. Код не нужен. Спасибо!