(1)双操作数指令,支持8条,已实现5条,使用4个通用寄存器R3~R0
格式:
ADD DR, SR
SUB DR, SR
CMP DR, SR
AND DR, SR
MOV DR, SR
注意:受指令字长度限制,只能为每个寄存器分配2位编码,故只能使用4个通用寄存器和4位操作码,操作码最高位的值为0。
(2)单操作数指令,支持12条,已实现8条,使用4个通用寄存器R3~R0
格式:
(1 0 0 1操作码例外)使用6位操作码,操作码最高2位的值为10。
SHR DR
SHL DR
PUSH SR
POP DR
STO SR
LOD DR
IN I/OPORT
OUT I/OPORT
注意:LOD、STO为内存读写指令,内存地址由专用寄存器R9、R8给出;IN、OUT约定为对串行接口读/写的指令,I/O
PORT为00(数据) 和01(状态),R0是用于接收和发送的寄存器;I/O端口地址10、11可用于另一路串行接口。
(3)单操作数指令,是INC和DEC指令,INC可使用4个通用、12个专用寄存器,DEC指令只能用于4个通用寄存器。
格式:
INC DR
DEC DR
(4)双操作数指令,是一条取立即数指令,使用4个通用、12个专用寄存器
这是一条双字节指令,第二个字节存放立即数
格式:
MVD DR, DATA
(5)双字节指令,8位操作码,支持16条,已实现5条,亦可实现正常I/O指令
格式:
JR OFFSET
JZ OFFSET
JNZ OFFSET
JC OFFSET
JNC OFFSET
注意:指令的第二个字节为相对转移的偏移量,或用作扩展其它输入/输出 (非已约定的串行口)指令的I/O端口地址。
(6)无操作数指令,8位操作码,支持16条,实现7条。PUSHF POP STC CLC RET JMP CALL
格式:
注意:JMP、CALL指令用到的地址由专用寄存器R11、R10给出。
|
|