Значение syscall_time в macOS High Sierra - PullRequest
0 голосов
/ 11 октября 2018

Я пишу программу на ассемблере и хочу использовать текущее время устройства.В Linux есть системный вызов с номером 201, который возвращает количество секунд с начала 1970 года. Кто-нибудь знает, каково значение соответствующего системного вызова в macOS?

1 Ответ

0 голосов
/ 11 октября 2018

Спасибо за вашу помощь, я нашел решение.Ниже вы можете найти, как загрузить время в буферное хранилище

macOS

load_time:
   mov rax, 0x2000074
   lea rdi, [rel buffer]
   mov rsi, 0
   syscall
   ret

Вы предоставляете указатель на буфер в качестве аргумента для извлечения данных в виде структуры

_STRUCT_TIMEVAL {
    __darwin_time_t         tv_sec;         /* seconds */
    __darwin_suseconds_t    tv_usec;        /* and microseconds */
};

В случае Linux возвращаются только секунды

load_time
    mov rax, 201
    mov rdi, 0
    syscall
    mov [rel buffer], rax
    ret
...