指令的种类 | 助记符 | 功能 |
---|---|---|
运算指令 | ADD A,num | 把数值num加到寄存器A的值上 |
ADD A,reg | 把寄存器reg的值加到寄存器A的值上 | |
SUB num | 从寄存器A的值中减去数值num | |
SUB reg | 从寄存器A的值中减去寄存器reg的值 | |
INC reg | 将寄存器reg的值加1 | |
DEC reg | 将寄存器reg的值减1 | |
AND num | 计算寄存器A的值和数值num的逻辑积 | |
AND reg | 计算寄存器A的值和寄存器reg的值得逻辑积 | |
OR num | 计算寄存器A的值和数值num的逻辑和 | |
OR reg | 计算寄存器A的值和寄存器reg的值的逻辑和 | |
XOR num | 计算寄存器A的值和数值num的逻辑异或 | |
XOR reg | 计算寄存器A的值和寄存器reg的值的逻辑异或 | |
SLA reg | 对寄存器reg的值进行算数左移运算 | |
SRA reg | 对寄存器reg的值进行算术右移运算 | |
SRL reg | 对寄存器reg的值进行逻辑右移运算 | |
CP num | 比较寄存器A的值和数值num的大小 | |
CP reg | 比较寄存器A的值和寄存器reg的值的大小 | |
内存与CPU之间的输入输出指令 | LD reg,num | 把数值num写入到寄存器reg中 |
LD reg1,reg2 | 把寄存器reg2的值写入到寄存器reg1中 | |
LD (num),reg | 把寄存器reg的值写入到地址num上 | |
LD (reg1),reg2 | 把寄存器reg2的值写入到存放在寄存器reg1中的地址上 | |
PUSH reg | 把寄存器reg的值写入到栈中 | |
POP reg | 把由栈顶读出的数据存放到寄存器reg中 | |
I/O与CPU之间的输入输出指令 | IN A,(num) | 从地址num中读出数据,存放到寄存器A中 |
IN reg,(C) | 从存储在寄存器C中地址上读出数据,存放到寄存器reg中 | |
OUT (num),A | 把寄存器A的值写入到地址num中 | |
OUT (C),reg | 把寄存器reg的值写入到存储在寄存器C中的地址上 | |
程序流程控制指令 | JP num | 使程序的流程跳转到地址num上,接下来从那个地址上的指令开始执行 |
CALL num | 调用存放在地址num上的子例程 | |
RET | 从子例程中返回 | |
HALT | 中止CPU的运行 |
Z80 CPU | |
---|---|
A | F |
B | C |
D | E |
H | L |
I | R |
IX | |
IY | |
SP | |
PC |