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