0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

chip8の研究

Last updated at Posted at 2020-09-08

概要

chip8を調べてみた。

chip8 アセンブラ 命令セット

ニーモニック 意味 コード
CLS dispクリア 0x00E0
scrole スクロール 0x00c6
DRW Vx, Vy, sprite Vx, Vy <- sprite 0xdnnn
LD Vx, byte Vx <- byte 0x6nnn
LD Vx, Vy Vx <- Vy 0x8nnn
LD Vx, I V0:Vx <- memory[I] 0xf065
LD Vx, DT Vx <- delay timer 0xf007
LD Vx, K Vx <- Key 0xf00a
LD DT, Vx delay timer <- Vx 0xf015
LD ST, Vx sound timer <- Vx 0xf018
LD F, Vx memory[I] <- sprite 0xf029
LD B, Vx memory[I] <- BCD(Vx) 0xf033
LD I, addr I <- addr 0xannn
LD I, Vx memory[I] <- V0:Vx 0xf055
OR Vx, Vy Vx <- Vx or Vy 0x8001
AND Vx, Vy Vx <- Vx and Vy 0x8002
XOR Vx, Vy Vx <- Vx xor Vy 0x8003
SHR Vx, Vy Vx <- Vx >> Vy 0x8006
SHL Vx, Vy Vx <- Vx << Vy 0x800e
ADD Vx, byte Vx <- Vx + byte 0x7nnn
ADD Vx, Vy Vx <- Vx + Vy 0x8004
ADD I, Vx I <- I + Vy 0xf01e
SUB Vx, Vy Vx <- Vx - Vy 0x8005
SUBN Vx, Vy Vx <- Vy - Vx 0x8007
RND Vx, byte Vx <- rnd(byte) 0xcnnn
SE Vx, byte if (Vx == byte) pc += 2 0x3nnn
SE Vx, Vy if (Vx == Vy) pc += 2 0x5nnn
SNE Vx, byte if (Vx != byte) pc += 2 0x4nnn
SNE Vx, Vy if (Vx != Vy) pc += 2 0x9nnn
SKP Vx if (key(Vx) == 1) pc += 2 0xe09e
SKNP Vx if (key(Vx) != 1) pc += 2 0xe0a1
SYS addr pc <- addr 0x0nnn
JP addr pc <- addr 0x1nnn
JP V0, addr pc <- V0 + addr 0xbnnn
CALL addr stack <- pc, pc <- addr 0x2nnn
RET pc <- stack 0x00EE

補足

命令長は、2バイト。固定。
データバスは、8bit
アドレスバスは、12bit
レジスタは、V0からVFの16個で、8bit
VFレジスタは、算術演算命令実行時のキャリーフラグ
スタックは、16個。
アドレスレジスタとして、Iレジスタで12ビット
プログラムは、アドレス0200h番地から実行
出力は、64×32ピクセルのグラフィック機能
左上が(0,0)で、右下が(63,31)。
描画はXORで行われる。
4×5ピクセルのフォントパターンを内蔵しています。('0'-'9','A','B','C','D','E','F')
入力は、キー、16個あります。
2つの8ビットタイマがあります。
一つはディレイタイマDT、もう一つはサウンドタイマSTです。

以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?