-
Notifications
You must be signed in to change notification settings - Fork 5
Takym QA
Takym (たかやま) edited this page Jul 2, 2021
·
15 revisions
Takym > QA
このページでは Slack の初心者質問相談チャンネルで行われた質問とその回答を要約しています。
回答: あります。
例えば x86 では下記の様な命令があります。
命令 | 説明 (概略) | 参考 |
---|---|---|
CMPXCHG8B |
レジスタとメモリ上の値を比較し等しければ交換します。 | https://www.felixcloutier.com/x86/cmpxchg8b:cmpxchg16b |
CRC32 |
巡回冗長検査します。 | https://www.felixcloutier.com/x86/crc32 |
INT3 |
デバッグ時に使用されます。 | https://x86.puri.sm/html/file_module_x86_id_142.html |
UD2 |
無効命令例外を発生させます。 | https://mudongliang.github.io/x86/html/file_module_x86_id_318.html |
回答: ありますが、難易度は高いです。
BIOS (INT 0x10
命令) を使わずに描画処理を行うには下記の方法が考えられます:
- グラフィックコントローラ、ビデオチップ、GPU等の仕様書を入手する。
- 仕様書は有料である場合や公開されていない場合もあります。
- X Window System 等既存のオープンソースシステムを利用または解析する。
BIOS ROM に保存されているコードの解析は利用規約や著作権に抵触する可能性があります。
回答: UTF-16BE または UTF-32BE 以外の文字コードで保存されている可能性があります。
Unicode では必ずコードポイントと同じ値がファイルに保存される訳では無く、通常は UTF-8、UTF-16、UTF-32 のいずれかに符号化してから保存されます。 「あ」(U+3042)という文字の場合は文字コード毎に下記の様に変換されます。
-
UTF-8:
E3 81 82
-
UTF-16LE:
42 30
-
UTF-16BE:
30 42
-
UTF-32LE:
42 30 00 00
-
UTF-32BE:
00 00 30 42
C言語の型 wchar_t
はワイド文字型であり、どの文字コードを使うかは規定されておらず、環境依存になります。コンパイラやOSなどにより異なります。
上記で挙げた文字コードではない可能性もあります。
どの文字コードが使われるかは適宜確認する必要があります。
回答: こちらのページを参考にしてください。
(書きかけ...)