1
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 5 years have passed since last update.

アセンブラAdvent Calendar 2018

Day 3

jsdoでchip8 その2

Last updated at Posted at 2018-11-26

#概要

jsdoでchip8やってみた。
アセンブラを作ってみる。設計編

#ニーモニックを変える。

覚え安く、変える。

転送命令

CLS  -> cls
DRW  -> disp
LD -> load

ビット操作命令

OR -> or
AND -> and 
XOR -> xor
SHR  -> rshift
SHL  -> lshift

算術命令

ADD -> add
SUB -> sub
SUBN -> nsub 
RND -> rand

分岐命令

RET ->ret
SYS -> sys
JP -> goto
CALL -> call 
SE -> eq
SNE -> neq
SKP ->keq 
SKNP ->kneq 

追加

nop  -- no op
data byte -- data

補足
一行は、ラベル、スペース、スペース、第一オペランド、スペース、スペース、第二オペランド、スペース、スペース、第三オペランド、スペース、スペース、第四オペランド。
orgは無く、スタートアドレスは、0200H番地から、固定。
数値は、0-255の十進のみ。
レジスタは、v0-v15の16個とI(アドレス)。

#サンプルコード
012345を表示する。

	load	v2	5
	load	v1	3
	load	I	0
	load	v0	11
	disp	v0	v1	6

	add	v0	6
	add	I	v2
	disp	v0	v1	6

	add	v0	6
	add	I	v2
	disp	v0	v1	6

	add	v0	6
	add	I	v2
	disp	v0	v1	6

	add	v0	6
	add	I	v2
	disp	v0	v1	6

	add	v0	6
	add	I	v2
	disp	v0	v1	6

#命令の組み立て方
レジスタは、4bit
アドレスは、12bit

2byte
00E0 CLS
00EE RET
0nnn SYS addr
1nnn JP addr
2nnn CALL addr
3xkk SE Vx, byte
4xkk SNE Vx, byte
5xy0 SE Vx, Vy
6xkk LD Vx, byte
7xkk ADD Vx, byte
8xy0 LD Vx, Vy
8xy1 OR Vx, Vy
8xy2 AND Vx, Vy
8xy3 XOR Vx, Vy
8xy4 ADD Vx, Vy
8xy5 SUB Vx, Vy
8xy6 SHR Vx {, Vy}
8xy7 SUBN Vx, Vy
8xyE SHL Vx {, Vy}
9xy0 SNE Vx, Vy
Annn LD I, addr
Bnnn JP V0, addr
Cxkk RND Vx, byte
Dxyn DRW Vx, Vy, nibble
Ex9E SKP Vx
ExA1 SKNP Vx
Fx07 LD Vx, DT
Fx0A LD Vx, K
Fx15 LD DT, Vx
Fx18 LD ST, Vx
Fx1E ADD I, Vx
Fx29 LD F, Vx
Fx33 LD B, Vx
Fx55 LD [I], Vx
Fx65 LD Vx, [I]

以上。

1
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
1
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?