天涯孤星运算类的指令,无非就是加减乘除,而且是很简单的算术
算术运算类指令
算术运算类指令的功能是进行加、减、乘、除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指令
减1指令的操作码助记符是“DEC” 。
指令格式:DEC 操作数
指令的功能是将操作数减1 , 结果仍保存在该操作数中 。
推荐阅读
- 天涯沦落人|唯一击败过基普乔格的人!前马拉松世界冠军伪造行程,被禁赛四年,
- 天涯沦落人|林丹现在退役有原因!日本品牌看不到希望,进入东京奥运会无望
- 天涯沦落人|李冰冰江疏影送祝福:永远的超级丹,林丹正式退役!国羽将士发声
- 天涯沦落人|林丹正式退役!国羽将士发声,李冰冰江疏影送祝福:永远的超级丹
- 快来试试加速numpy的矩阵运算
- 天涯沦落人|幸运!张鹭成深足主力门将,足协禁赛一年,休赛期长达8个月
- 天涯沦落人|C罗或效仿梅西举办世纪婚礼,好事临时?乔治娜晒无名指钻戒
- 天涯沦落人|章鱼哥采访居然出现西乙logo麦克风!武磊该考虑未来了
- 3DM游戏网|《天涯明月刀》方寸梦回白鹭洲时装介绍
- 天涯沦落人|球员彼此都缺乏尊重,提前结束列队谁的错?利物浦和曼城球迷激辩
