chip8模拟器的python3实现-2-指令介绍

CHIP指令表

CHIP-8有35个指令,都为两字节长,以大端方式存储。指令表的指令格式规定如下:

NNN:地址

NN:8位常量

N:4位常量

V:寄存器

X和Y:4位,标识寄存器

PC:程序计数器

I:16位索引地址寄存器


操作码                    类型                    功能描述


0NNN                    调用                    执行地址NNN的子程序

00E0                     显示                     清屏

扫描二维码关注公众号,回复: 5967345 查看本文章

00EE                     跳转                     从子程序返回

1NNN                    跳转                     跳转到地址NNN

2NNN                    跳转                     调用子程序NNN

3XNN                    条件                     如果VX等于NN则跳过下一条指令(通常时跳过一条跳转指令)

4XNN                    条件                     如果VX不等于NN则跳过下一条指令(同上)

5XY0                     条件                     如果VX的值等于VY则跳过下一条指令(同上)

6XNN                    赋值                     VX = NN

7XNN                    赋值                     VX += NN,进位标记不会改变

8XY0                    赋值                     VX = VY

8XY1                    按位或                  VX = VX | VY

8XY2                    按位与                  VX = VX & VY

8XY3                    按位异或               VX = VX ^ VY

8XY4                    运算                      VX += VY,VX有进位(大于255)时VF为1,否则VF为0

8XY5                    运算                      VX -= VY,VX负数时VF为0,否则VF为1

8XY6                    右移                     VX >>= 1,VX最低位存入VF中

8XY7                    运算                     VX = VY - VX,VX负数时VF为0,否则VF为1

8XYE                    左移                    VX <<= 1,VX最高位存入VF中

9XY0                    条件                    如果VX不等于VY则跳过下一条指令(通常时跳过一条跳转指令)

ANNN                  地址                    将I设置为NNN

BNNN                  跳转                    跳转到地址V0+NNN,PC=V0+NNN

CXNN                  随机数                 VX = rand() & NN

DXYN                  显示                    在(VX,VY)绘制一个宽8像素、高N像素的精灵。每8个像素从I寄存器中的地址逐步读出一字节(8位),在执行该语句时I内的值不可以改变,如果像素反转为0则碰撞检测将VF置为1

EX9E                   按键                    跳过下一条指令,如果存储在VX的键值所应的键被按下

EXA1                   按键                    跳过下一条指令,如果存储在VX的键值所应的键没有被按下

FX07                    定时器                获取延时寄存器的值

FX0A                    按键                    等待按键,将按键的值存入VX(阻塞指令,所有指令将等待该指令执行完

FX15                    定时器                将VX的值存入延时寄存器

FX18                    定时器                将VX的值存入声音寄存器

FX1E                    地址                   I += VX

FX29                    地址                   将VX中的精灵地址赋值给I,字符0-F由4X5字体表示

FX33                    BCD                  将VX中值的BCD码存入I中的地址内,百位在I,十位在I+1,个位在I+2

FX55                   地址                   将V0到VX的值存入I中地址为起始的内存空间

FX65                   地址                   将I中地址为起始的内容依次存入V0-VX

参考文献:CHIP-8 - Wikipedia

猜你喜欢

转载自www.cnblogs.com/hwnzy/p/10748305.html