指令系统
一、算数运算指令
(1) 加法指令
格式:ADD DST ,SRC
功能:DST <= DST + SRC
(2)带进位加法
格式:ADC DST,SRC
功能:DST <= DST + SRC + CF
(3)加一指令
格式:INC DST
功能:DST <= DST + 1
(4) 减法指令
格式:SUB DST,SRC
功能:DST <= DST - SRC
(5)带借位减法
格式:SBB DST,SRC
功能:SBB <= DST - SRC - CF
(6)减一指令
格式:DEC DST
功能:DST <= DST - 1
(7)求负指令
格式:NEG DST
功能:DST <= 0 - DST (求补)
二、位操作指令
1、逻辑运算指令
(1)逻辑与 : AND DST,SRC
(2)逻辑或 : OR DST,SRC
(3)逻辑异或 : XOR DST,SRC
(4)逻辑非 : NOT DST,SRC
2、测试指令
格式:TEST DST,SRC
功能:跟AND功能一样,将DST与SRC按位与,根据运算结果设置FLAG,但是结果不送给DST,即不会改变DST和SRC的值
3、移位/循环移位指令
格式:
&1、算术移位
(1)算术左移:SAL DST,COUNT
(2)算术右移:SAR DST,COUNT
&2、逻辑移位
(1)逻辑左移:SHL DST,COUNT
(2)逻辑右移:SHR DST,COUNT
&3、循环移位
(1)循环左移:ROL DST,COUNT
(2)循环右移:ROR DST,COUNT
&4、带进位循环移位
(1)带进位循环左移:RCL DST,COUNT
(2)带进位循环右移:RCR DST,COUNT
¥说明
1、COUNT为1时可用“1”替代,不为1则用CL
2、移位每移出一次,移出的位送CF
3、DST可以是REG和MEM
功能:
1、SAL/SHL
2、SAR
3、SHR
4、ROL/ROR
5、RCL/RCR
三、处理器控制指令
1、FLAG操作
(1)CLC CF清零
(2)STC CF置位
(3)CMC CF取反
(4)CLD DF = 0
(5)STD DF = 1
(6)CLI IF = 0
(7)STI IF = 1
2、空操作指令 NOP
仅占CPU时钟周期