「X86」の版間の差分

提供: Wikinote
移動: 案内検索
(新しいページ: ' == レジスタ == === 汎用レジスタ === これらは 32 ビットである。'E' を省いたものが下位 16 ビットを示す。 また、A - D までは、?L で...')
 
(レジスタ)
行20: 行20:
 
; 32 ビット
 
; 32 ビット
 
: EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, R8D - R15D
 
: EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, R8D - R15D
 +
 +
=== セグメントレジスタ ===
 +
すべて 16 ビット幅である。
 +
* CS — Code segment register
 +
* DS, ES, FS, GS — Data segment register
 +
* SS — Stack segment register
 +
 +
=== フラグレジスタ ===
 +
; EFLAGS
 +
: 32 ビット幅で、プロセッサ初期化後の値は 0x00000002 となる。
 +
 +
==== ステータスフラグ ====
 +
* CF (bit 0) — Carry flag
 +
* PF (bit 2) — Parity flag
 +
* AF (bit 4) — Adjust flag
 +
* ZF (bit 6) — Zero flag
 +
* SF (bit 7) — Sign flag
 +
* OF (bit 11) — Overflow flag
 +
 +
フラグは多すぎて面倒なのでまたやる気が出たら…
 +
 +
=== 命令ポインタ ===
 +
; EIP (RIP)
 +
: 32 ビット幅 (64 ビット幅)

2009年4月23日 (木) 22:19時点における版

レジスタ

汎用レジスタ

これらは 32 ビットである。'E' を省いたものが下位 16 ビットを示す。 また、A - D までは、?L で下位 0-7 ビット、?H で 下位 8-15 ビットを示す。

  • EAX — Accumulator for operands and results data
  • EBX — Pointer to data in the DS segment
  • ECX — Counter for string and loop operations
  • EDX — I/O pointer
  • ESI — Pointer to data in the segment pointed to by the DS register; source pointer for string operations
  • EDI — Pointer to data (or destination) in the segment pointed to by the ES register; destination pointer for string operations
  • ESP — Stack pointer (in the SS segment)
  • EBP — Pointer to data on the stack (in the SS segment)

64 ビットモード

64 ビットモードでは、以下の 16 個の汎用レジスタが利用できる。 これらはそれぞれ、32 ビットでアクセスすることも可能だ。

64 ビット
RAX, RBX, RCX, RDX, RDI, RSI, RBP, RSP, R8 - R15
32 ビット
EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, R8D - R15D

セグメントレジスタ

すべて 16 ビット幅である。

  • CS — Code segment register
  • DS, ES, FS, GS — Data segment register
  • SS — Stack segment register

フラグレジスタ

EFLAGS
32 ビット幅で、プロセッサ初期化後の値は 0x00000002 となる。

ステータスフラグ

  • CF (bit 0) — Carry flag
  • PF (bit 2) — Parity flag
  • AF (bit 4) — Adjust flag
  • ZF (bit 6) — Zero flag
  • SF (bit 7) — Sign flag
  • OF (bit 11) — Overflow flag

フラグは多すぎて面倒なのでまたやる気が出たら…

命令ポインタ

EIP (RIP)
32 ビット幅 (64 ビット幅)