1

64 ビット コードを使用して、syscall 命令を介して gettimeofday を呼び出しています。

結果を返すことができず、Dtrace を介して呼び出しがエラーなしで行われたと通知されていますが、呼び出しから返されたレジスタはガベージです。

私は次のことを行います:

lea rdi, [rel timeval]   ;buffer for 16bytes
mov rsi, 0               ;no need of timezone
mov rax, 0x2000074       ;gettimeofday
syscall

戻り時に rax は 0 でも -1 でもなく、バッファーはデータを取得しません。

誰かがこれをチェックして、彼らが実際の電話を受けることができるかどうかを確認してください. 何が起こっているのかわかりません。

よろしくお願いします

クリス

psこれは私が試したサンプルコードです.0以外は何も返しません.

    SECTION .text

    global _main
_main:
    lea rdi, [rel buffer]
    mov rsi, 0
    mov rax, 0x2000074
    syscall

    mov rdi, [rel buffer]
    mov rax, 0x2000001
    syscall

    SECTION .data
buffer:
    times 16 db 0
4

1 に答える 1