乱数ジェネレータに現在のシステム時刻を設定しようとしています。 NASMを使用してシステム時刻にアクセスするにはどうすればよいですか? (私はLinuxを使用しています)NASMを使用してシステム時刻にアクセスするにはどうすればよいですか?
6
A
答えて
5
%define RTCaddress 0x70
%define RTCdata 0x71
;Get time and date from RTC
.l1: mov al,10 ;Get RTC register A
out RTCaddress,al
in al,RTCdata
test al,0x80 ;Is update in progress?
jne .l1 ; yes, wait
mov al,0 ;Get seconds (00 to 59)
out RTCaddress,al
in al,RTCdata
mov [RTCtimeSecond],al
mov al,0x02 ;Get minutes (00 to 59)
out RTCaddress,al
in al,RTCdata
mov [RTCtimeMinute],al
mov al,0x04 ;Get hours (see notes)
out RTCaddress,al
in al,RTCdata
mov [RTCtimeHour],al
mov al,0x07 ;Get day of month (01 to 31)
out RTCaddress,al
in al,RTCdata
mov [RTCtimeDay],al
mov al,0x08 ;Get month (01 to 12)
out RTCaddress,al
in al,RTCdata
mov [RTCtimeMonth],al
mov al,0x09 ;Get year (00 to 99)
out RTCaddress,al
in al,RTCdata
mov [RTCtimeYear],al
ret
これはNASMを使用し、hereからです。
1
私は、どのプラットフォームを使用しているかによって、OS機能を使用する必要があると言います。
ウィンドウでは、GetSystemTimeを試してください。 Linuxでは、gettimeofdayを試してください - 関連する質問hereを参照してください。 Linuxを使用して
6
:
mov eax, 13
push eax
mov ebx, esp
int 0x80
pop eax
は(あなたはそれが別のレジスタにポップしたい場合は、単に最後の命令を置き換える)EAXに現在のUNIX時間をポップアップ表示されます。
これはsys_time(システムコール番号13)へのシステムコールで、スタックの最上部であるebxのメモリ位置に時刻を返します。 NASMで
0
、あなたは、Linux x86-64のをターゲットにしている場合、あなたは、単に次の操作を実行できます。(hereが記載されているとして)
mov rax, 201
xor rdi, rdi
syscall
201
sys_time
ための64ビットのシステムコール番号に対応しています。レジスタrdi
は0に設定され、システムコール実行後の戻り値はrax
に格納されますが、選択したメモリ位置を指すようにすることもできます。結果は、エポックから秒単位で表されます。
このシステムコールの詳細については、time man pageを参照してください。
関連する問題
- 1. システム時刻を設定するにはどうすればよいですか?
- 2. Windows APIを使用してシステム仕様にアクセスするにはどうすればよいですか?
- 3. 現在時刻から時刻を前に無効にするにはどうすればよいですか?
- 4. UTC時刻をjava.sql.Timestampにするにはどうすればよいですか?
- 5. NASMを使用して1バイトの値を変更するにはどうすればよいですか?
- 6. GPSを使用している場合、UTC時刻をAndroidのデバイス時刻に変換するにはどうすればよいですか?
- 7. SimpleDateFormatが時刻を更新しないようにするにはどうすればいいですか
- 8. AndroidのHandler.PostDelayedを使用して、指定された時刻にイベントが発生するようにするにはどうすればよいですか?
- 9. PHPスクリプトを使用してAndroidシステムにデータベースを作成するにはどうすればよいですか?
- 10. JavaのJoda日付/時刻ライブラリを使用して、「今日」の日付/時刻範囲を取得するにはどうすればよいですか?
- 11. ストーム使用時にトポロジーコンテキストからボルトにオブジェクトにアクセスするにはどうすればよいですか?
- 12. ブラウザからハードウェアの時刻にアクセスするにはどうすればいいですか?
- 13. Swiftを使用して通知システムでカレンダーを作成するにはどうすればよいですか?
- 14. 日付時刻をフォーマットするにはどうすればいいですか?
- 15. デルファイを使用しているシステムにMSXML6がインストールされているかどうかを確認するにはどうすればよいですか?
- 16. アポイントアイテムの予定時刻と予定時刻を作成するにはどうすればいいですか?
- 17. RVMを使用してRubyシステムを1.8.7に戻すにはどうすればよいですか?
- 18. PDFレンダリング時にCATiledLayerを使用しないようにするにはどうすればよいですか?
- 19. 新しいLoader APIを使用してwebpack configにアクセスするにはどうすればよいですか?
- 20. Javaを使用してシステムのパスワードを取得するにはどうすればよいですか?
- 21. revit APIを使用してすべてのファミリタイプにアクセスするにはどうすればよいですか?
- 22. Linux 32 NASMどのようにすればいいのですか?(どのヒント?
- 23. ストリングパスを使用してネストされたオブジェクトにアクセスするにはどうすればよいですか?
- 24. バインドされたPolymerデータにアクセスしてスクリプトで使用するにはどうすればよいですか?
- 25. Python pandasを使用して、時間データを毎日の日付と時刻に効率的に変換するにはどうすればよいですか?
- 26. カールを使用してjsonツリーの深いレベルにアクセスするにはどうすればよいですか?
- 27. ノードスケジュールを使用して特定の時刻の正しい形式を使用するにはどうすればよいですか?
- 28. AzureのSSHを使用してジャンプボックスからノードにアクセスするにはどうすればよいですか?
- 29. AS3を使用してムービークリップから別のムービークリップにアクセスするにはどうすればよいですか?
- 30. メインドメインホストを使用してサブドメインからファイルにアクセスするにはどうすればよいですか?
種類が大きく編集されましたが、私はOPが尋ねていたものとおおよその質問をしました.... –
システムコール/ '/ dev'ファイルシステムを使用できますか? –
作業QEMU 16ビットリアルモードの例:https://github.com/cirosantilli/x86-bare-metal-examples/blob/173111e0d0081701512a10d72dc0439f4ab1f55d/in_rtc.Sシステムコール/ devファイルシステムを使用できますか? –