天涯孤星运算类的指令,无非就是加减乘除,而且是很简单的算术


算术运算类指令
算术运算类指令的功能是进行加、减、乘、除4种基本算术运算 。 它包括加法指令、减法指令、乘法指令、除法指令和十进制数调整指令 。
1.加法指令
加法指令又分不带进位的加法指令、带进位的加法指令和加1指令 。
(1)不带进位的加法指令
不带进位的加法指令的操作码助记符是“ADD” 。
指令格式:ADDA , 操作数2
指令的功能是将操作数2与累加器A中的数据相加 , 结果保存在A中 。
不带进位的加法指令有4条 , 各条指令的形式和功能如下:

天涯孤星运算类的指令,无非就是加减乘除,而且是很简单的算术
本文插图

下面举两个例子来说明不带进位的加法指令的功能 。
① ADD A , #36H 。 在指令执行前 , 如果累加器A中的数据为56H , 那么指令执行后 , 累加器A中的数据为8CH(36H+56H) 。
② ADD A , R6 。 在指令执行前 , 如果累加器A 中的数据为78H(01111000) , R6 中的数据为89H(10001001) , 那么指令执行后 , 相加得到的数据为101H(100000001) , 由于累加器A是一个8位寄存器 , 所以只能存储8位数00000001(01H) , 而最高位D7的进位会保存在PSW的进位标志位(CY)中 , 让(CY)=1 , 另外两个数据的低4位相加(1000+1001)时 , D3位会向高位D4位进位 , 在进位的同时会将PSW的辅助进位标志位(AC)置“1” 。
(2)带进位的加法指令
带进位的加法指令的操作码助记符是“ADDC” 。
指令格式:ADDCA , 操作数2
指令的功能是将操作数2与累加器A中的数据相加 , 再与PSW中CY位的数据相加 , 结果保存在累加器A中 。
带进位的加法指令有4条 , 各条指令的形式和功能如下:

天涯孤星运算类的指令,无非就是加减乘除,而且是很简单的算术
本文插图

?下面举例说明带进位的加法指令的功能 。
例如:ADDC A , #36H
在指令执行前 , 如果累加器A中的数据为56H , 寄存器PSW中CY位的数据为“1” , 那么指令执行后 , 累加器A中的数据为8DH(36H+56H+1) 。
(3)加1指令
加1指令又称增量指令 , 它的操作码助记符是“INC” 。
指令格式:INC 操作数
指令的功能是将操作数加1 , 结果仍保存在该操作数中 。 加1指令有5条 , 各条指令的形式和功能如下:

天涯孤星运算类的指令,无非就是加减乘除,而且是很简单的算术
本文插图

?
下面举例说明加1指令的功能 。
例如:INC @R0
在指令执行前 , 如果寄存器R0中的地址为56H , 56H单元中的数据为35H , 那么指令执行后 , 56H单元中的数据为36H 。
【天涯孤星运算类的指令,无非就是加减乘除,而且是很简单的算术】2.减法指令
减法指令又分带借位的减法指令和减1指令 。
(1)带借位的减法指令
带借位的减法指令的操作码助记符是“SUBB” 。
指令格式:SUBBA , 操作数2
指令的功能是将累加器A中的数据减去操作数2 , 再减去PSW中CY位的数据 , 结果保存在累加器A中 。
带借位的减法指令有4条 , 各条指令的形式和功能如下:

天涯孤星运算类的指令,无非就是加减乘除,而且是很简单的算术
本文插图

?
下面举例说明带借位的减法指令的功能 。
例如:SUBB A , R6
在指令执行前 , 如果累加器A中的数据为89H , 寄存器R6中的数据为78H , CY位中的数据为1 , 那么指令执行后 , 累加器A中的数据为10H(89H?78H?1) 。
如果不需要借位 , 可先将CY位清0 , 清0指令将在后面介绍 。
(2)减1指令


推荐阅读