指令名称:寄存器加法指令
指令代码:28H~2FH
指令功能:累加器内容与寄存器内容相加
操作内容:A←(A)+(Rn), n=0~7
字节数: 1
机器周期;1
影响标志位:C,AC,OV
说明:
Rn——当前选择的寄存器区的寄存器R0—R7。
举例:
假如累加器A的内容是44H,寄存器R0的内容是11H,在执行指令ADD A,R0之后,累加器A的内容将是55H。
指令名称:直接寻址加法指令
指令代码:25H
指令功能:累加器内容与内部RAM单元或专用寄存器内容相加
操作内容:A←(A)+(direct)
字节数: 2
机器周期:1
影响标志位:C,AC,OV
说明:
direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x00—0x7F)或一个SFR地址(0x80—0xFF)。
举例:
假如累加器A的内容是A0H,存储器2323H单元的内容是字节08H,在执行指令ADD A,2323H之后,累加器A的内容将为A8H。
指令名称:间接寻址不带进位加法指令
指令代码:26H~27H
指令功能:累加器A内容与内部RAM低128单元内容相加,接果在累加器A中
操作内容:A←(A)+((Ri)), i=0,1
字节数: 1
机器周期:1
影响标志位:C,AC,OV
说明:
@Ri——通过寄存器R0—R1间接寻址地数据RAM地址。
举例:
假如累加器A的内容是85H,寄存器R0中存放的数是30H,在片内RAM地址为30H单元里的内容是11H,在执行ADD A, @R0之后,累加器A的容将是96H。
指令名称:立即数加法指令
指令代码:24H
指令功能:累加器内容与立即数相加
操作内容:A←(A)+data
字节数: 2
机器周期:1
影响标志位:C,AC,OV
说明:
#data——8位立即数。
举例:
假如累加器A的内容是23H,在执行指令ADD A,#33H之后,累加器A的内容将是56H。
指令名称:寄存器带进位加法指令
指令代码:38H~3FH
指令功能:累加器内容、寄存器内容和进位位相加
操作内容:A←(A)+(Rn)+(Cy), n=0~7
字节数: 1
机器周期:1
影响标志位:C,AC,OV
说明:
Rn——当前选择的寄存器区的寄存器R0—R7。
举例:
假如累加器A的内容是44H,寄存器R0的内容是11H,进位标志位C=1,在执行指令ADDC A,R0之后,累加器A的内容将是56H。
指令名称:直接寻址带进位加法指令
指令代码:35H
指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加
操作内容:A←(A)+(direct)+(C)
字节数: 2
机器周期:1
影响标志位:C,AC,OV
说明:
direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x00—0x7F)或一个SFR地址(0x80—0xFF)。
举例:
假如累加器A的内容是A0H,存储器23H单元的内容是字节08H,进位标志位C是1,在执行指令ADD A, 23H之后,累加器A的内容将为A9H。
指令名称:间接寻址带进位加法指令
指令代码:36H~37H
指令功能:累加器内容、内部RAM低128单元内容及进位位C相加
操作内容:A←(A)+((Ri))+(C), i=0,1
字节数: 1
机器周期:1
影响标志位:C,AC,OV
说明:
@Ri——通过寄存器R0—R1间接寻址地数据RAM地址。
举例:
假如累加器A的内容是85H,寄存器R0中存放的数是30H,在片内RAM地址为30H单元里的内容是11H,进位标志位C是1,在执行ADDC A, @R0之后,累加器A的容将是97H。
指令名称:立即数带进位加法指令
指令代码:34H
指令功能:累加器内容、立即数及进位位相加
操作内容:A←(A)+data+(C)
字节数: 2
机器周期:1
影响标志位:C,AC,OV
说明:
#data——8位立即数。
举例:
假如累加器A的内容是23H,进位标志位C是1,在执行指令ADDC A,#33H之后,累加器的内容将是57H。
指令名称:累加器加1指令
指令代码:04H
指令功能:累加器内容加1
操作内容:A←(A)+1
字节数: 1
机器周期:1
影响标志位:累加器中8个位的和为奇数时该位置1,为偶数时该位清0。
举例:
假如累加器A中的内容是24H,在执行指令INC A之后,累加器中的内容将是25H。
指令名称:寄存器加1指令
指令代码:08H~0FH
指令功能:寄存器内容加1
操作内容:Rn←(Rn)+1,n=0~7
字节数: 1
机器周期:1
影响标志位:标志位不受引响。
说明:
Rn——当前选择的寄存器区的寄存器R0—R7。
举例:
假如寄存器R0中的内容是24H,在执行指令INC A之后,寄存器R0中的内容将是25H。
指令名称:直接寻址单元加1指令
指令代码:05H
指令功能:内部BAM低128单元或专用寄存器内容加1
操作内容:direct←(direct)+1
字节数: 2
机器周期:1
影响标志位:标志位不受引响。
说明:
direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x00—0x7F)或一个SFR地址(0x80—0xFF)。
举例:
假如内部RAM地址单元56H中的内容是#24H,在执行指令INC 56H之后,RAM地址单元56H中的内容将是#25H。
指令名称:间接寻址单元加1指令
指令代码:06H~07H
指令功能:内部RAM低128单元内容加1
操作内容:(Ri)←((Ri))+1;i=0,l
字节数: 1
机器周期:1
影响标志位:标志位不受引响。
说明:
@Ri——通过寄存器R0—R1间接寻址地数据RAM地址。
举例:
寄存器R0中存放的数是30H,在片内RAM地址为30H单元里的内容是11H,在执行INC @R0之后,RAM地址为30H单元里的内容是12H。
指令名称:16位数据指针加1指令
指令代码:A3H
指令功能:数据指针寄存器DPTR内容加1
操作内容:DPTR←(DPTR)+1
字节数: 1
机器周期:2
影响标志位:标志位不受引响。
说明:
DPTR——是一个16位的数据指针寄存器,可以用来存放片内ROM的地址,也可以用来存放片外RAM和片外ROM的地址。
举例:
假如16位地址指针寄存器的内容是2323H,片外RAM地址2323H中的内容是#78H,在执行INC DPTR指令之后,片外RAM地址2323H中的内容将是#79H
指令名称:寄存器寻址带进位减法指令
指令代码:98H~9FH
指令功能:累加器内容减寄存器内容和进位标志位内容
操作内容:A←(A)-(Rn)-(C); n=0~7
字节数: 1
机器周期:1
影响标志位:当够减时,进位标志位复位;不够减时,进位标志置位。当位3发生借位时,AC置位;否则AC复位。当位6及位7不同时发生借位时,OV置位;否则OV复位。
说明:
Rn——当前选择的寄存器区的寄存器R0—R7。
举例:
假如累加器A的内容是44H,寄存器R0的内容是11H,进位标志位C=1,在执行指令SUBB A,R0之后,累加器A的内容将是32H。
指令名称:直接寻址带进位减法指令
指令代码:95H
指令功能:累加器内容减内部RAM低128单元或专用寄存器和进位标志位内容
操作内容:A←(A)-(diret)-(C)
字节数: 2
机器周期:1
影响标志位:当够减时,进位标志位复位;不够减时,进位标志置位。当位3发生借位时,AC置位;否则AC复位。当位6及位7不同时发生借位时,OV置位;否则OV复位。(序号97)
说明:
direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x00—0x7F)或一个SFR地址(0x80—0xFF)。
举例:
假如累加器A的内容是19H,存储器23H单元的内容是字节06H,进位标志位C是1,在执行指令SUBB A, 23H之后,累加器A的内容将为12H。
指令名称:间接寻址带进位减法指令
指令代码:96H~97H
指令功能:累加器内容减内部RAM低128单元内容及进位标志位内容
操作内容:A←(A)-((Ri))-(C);i=0,1
字节数: 1
机器周期:1
影响标志位:当够减时,进位标志位复位;不够减时,进位标志置位。当位3发生借位时,AC置位;否则AC复位。当位6及位7不同时发生借位时,OV置位;否则OV复位。(序号97)
说明:
@Ri——通过寄存器R0—R1间接寻址地数据RAM地址。
举例:
假如累加器A的内容是85H,寄存器R0中存放的数是30H,在片内RAM地址为30H单元里的内容是11H,进位标志位C是1,在执行SUBB A, @R0之后,累加器A的容将是73H。
指令名称:立即数带进位减法指令
指令代码:94H
指令功能:累加器内容减立即数及进位标志内容
操作内容:A←(A)-data-(C)
字节数: 2
机器周期:1
影响标志位:当够减时,进位标志位复位;不够减时,进位标志置位。当位3发生借位时,AC置位;否则AC复位。当位6及位7不同时发生借位时,OV置位;否则OV复位。(序号97)
说明:
#data——8位立即数。
举例:
假如累加器A的内容是56H,进位标志位C是1,在执行指令ADDC A,#23H之后,累加器的内容将是32H。
指令名称:累加器减1指令
指令代码:14H
指令功能:累加器内容减1
操作内容:A←(A)-1
字节数: 1
机器周期:1
影响标志位:累加器中8个位的和为奇数时该位置1,为偶数时该位清0。
举例:
假如累加器A中的内容是24H,在执行指令DEC A之后,累加器中的内容将是23H。
指令名称:寄存器减1指令
指令代码:18H~1FH
指令功能:寄存器内容减1
操作内容:Rn←(Rn)-1,n=0~7
字节数: 1
机器周期:1
影响标志位:标志位不受引响。
说明:
Rn——当前选择的寄存器区的寄存器R0—R7。
举例:
假如寄存器R0中的内容是24H,在执行指令DEC A之后,寄存器R0中的内容将是23H。
指令名称:直接寻址减1指令
指令代码:15H
指令功能:内部RAM低128单元及专用寄存器内容减1
操作内容:direct←(direct)-1
字节数: 2
机器周期:1
影响标志位:标志位不受引响。
说明:
direct——8位内部数据存储器地址。可以直接访问数据RAM地址(0x00—0x7F)或一个SFR地址(0x80—0xFF)。
举例:
假如内部RAM地址单元56H中的内容是#24H,在执行指令DEC 56H之后,RAM地址单元56H中的内容将是#23H。
指令名称:间接寻址减1指令
指令代码:16H~17H
指令功能:内部RAM低128单元内容减1
操作内容:(Ri)←((Ri))-1, i=0,1
字节数: 1
机器周期:1
影响标志位:标志位不受引响。
说明:
@Ri——通过寄存器R0—R1间接寻址地数据RAM地址。
举例:
假如寄存器R0中存放的数是30H,在片内RAM地址为30H单元里的内容是#11H,在执行DEC @R0之后,RAM地址为30H单元里的内容将是#10H。
指令名称:乘法指令
指令代码:A4H
指令功能:实现8位无符号数乘法运算。两个乘数分别放在累加器A和寄存器B中。乘积为16位,低8位在B中,高8位在A中。
操作内容:AB←(A)×(B)
字节数: 1
机器周期:4
影响标志位:进位标志复位。若乘积大于255,则OV标志置位;否则复位。标志位P仍由累加器A中1的奇偶性确定。
指令名称:无符号数除法指令
指令代码:84H
指令功能:A的内容被B的内容除。指令执行后,商存于A中,余数存于B中。
操作内容:A←(A)/(B)的商
B←(A)/(B)的余数
字节数: 1
机器周期:4
影响标志位:C被清0;若B=00H,除法无法进行,并使OV=1;否则OV=0。标志位P仍由累加器A中1的奇偶性确定。
指令名称:十进制调整指令
指令代码:D4H
指令功能:对BCD码加法运算的结果进行有条件的修正
操作内容:若(A)3~0>9∨(AC)=1,则A3~0←(A)3~0+6
若(A)7~4>9∨(C)=1,则A7~4←(A)7~4+6
若(A)7~4=9∧(A)3~0>9,则A7~4←(A)7~4+6
字节数: 1
机器周期:1
使用说明:DA指令不影响溢出标志