| ア | イ | ウ | エ | オ |
| カ | キ | ク | ケ | コ |
| サ | シ | ス | セ | ソ |
| タ | チ | ツ | テ | ト |
| ナ | ニ | ヌ | ネ | ノ |
| ハ | ヒ | フ | ヘ | ホ |
| マ | ミ | ム | メ | モ |
| ヤ | ユ | ヨ | ||
| ラ | リ | ル | レ | ロ |
| ワ | ヰ | ヴ | ヱ | ヲ |
| ン |
| A | B | C | D | E |
| F | G | H | I | J |
| K | L | M | N | O |
| P | Q | R | S | T |
| U | V | W | X | Y |
| Z | 数字 | 記号 | ||
ARMv7から導入された、ソフトウェアからハードウェアの能力を判断するための手法。
Intel x86のcpuidとは異なり、専用命令が用意されているわけではない。
ARMの命令セットにあるコプロセッサーとのインターフェイスを利用し、コプロセッサーのレジスターを読み書きする命令を用いてレジスターを読み取り、情報が得られるようになっている。
ARMでは、CP15に様々な情報レジスターが割り付けられており、CRn→opc1→CRm→opc2で階層構造が取られている。このうち、CR0とopc1は0で、CRmがc1〜c7の範囲がCPUIDレジスターとされている。
CPUIDの扱いではないが、同じ階層で、CRmがc0、opt2が0には、Main IDレジスターがあり、このレジスターを読むとCPUの種類が判断できる。
次の命令を用いて汎用レジスターに読み取る。
MRC<c> <coproc>,<opc1>,<Rt>,<CRn>,<CRm>{,<opc2>}
MRC2<c> <coproc>,<opc1>,<Rt>,<CRn>,<CRm>{,<opc2>}
例えば、ID_PFR0をR0に読み取るには、次のようにする。
mrc p15, 0, r0, c0, c1, 0
現在定義されているレジスターは、次の通りである。
| CRn | opc1 | CRm | opc2 | レジスター | |
|---|---|---|---|---|---|
| c0 | 0 | c1 | 0 | ID_PFR0 | Processor Feature Register 0 |
| 1 | ID_PFR1 | Processor Feature Register 1 | |||
| 2 | ID_DFR0 | Debug Feature Register 0 | |||
| 3 | ID_AFR0 | Auxiliary Feature Register 0 | |||
| 4 | ID_MMFR0 | Memory Model Feature Register 0 | |||
| 5 | ID_MMFR1 | Memory Model Feature Register 1 | |||
| 6 | ID_MMFR2 | Memory Model Feature Register 2 | |||
| 7 | ID_MMFR3 | Memory Model Feature Register 3 | |||
| c2 | 0 | ID_ISAR0 | ISA Feature Register 0 | ||
| 1 | ID_ISAR1 | ISA Feature Register 1 | |||
| 2 | ID_ISAR2 | ISA Feature Register 2 | |||
| 3 | ID_ISAR3 | ISA Feature Register 3 | |||
| 4 | ID_ISAR4 | ISA Feature Register 4 | |||
| 5 | ID_ISAR5 | ISA Feature Register 5 | |||
| 6 | 予約 | ||||
| 7 | |||||
コメントなどを投稿するフォームは、日本語対応時のみ表示されます