8051指令系统与编程基础-指令系统部分概要.ppt

8051指令系统与编程基础-指令系统部分概要.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8051指令系统与编程基础-指令系统部分概要

3.3.2 算术运算类指令 * 指令系统中,有单字节的加、减、乘、除法指令,算术运算功能比较强。 算术运算指令都是针对8位二进制无符号数的,如要进行带符号或多字节二进制数运算,需编写具体的运算程序,通过执行程序实现。 算术运算的结果将使PSW的进位(Cy)、辅助进位(Ac)、溢出(OV)3种标志位置1或清0。但增1和减1指令不影响这些标志。 3.3.2 算术运算类指令 * 1 加法指令 把源操作数内容送累加器A相加。 ADD A,Rn ;(A)+(Rn)→A ,n=0~7 ADD A,direct ;(A)+(direct)→A ADD A,@Ri ;(A)+((Ri))→A,i=0,1 ADD A,#data ;(A)+#data→A 8位加法指令的一个加数总是来自累加器A,而另一个加数可由寄存器寻址、直接寻址、寄存器间接寻址和立即数寻址等不同的寻址方式得到。加的结果总是放在累加器A中。 3.3.2 算术运算类指令 * 2 带进位加法指令 进位标志位Cy参加运算,三个数相加。 ADDC A,Rn ;(A)+(Rn)+C→A ,n =0~7 ADDC A,direct ;(A)+(direct)+C→A ADDC A,@Ri ;(A)+((Ri))+C→A,i =0,1 ADDC A,#data ;(A)+#data+C→A 3.3.2 算术运算类指令 * 3 增1指令 把指令中所指出的变量增1,且不影响PSW中的任何标志。 INC A INC Rn ;n=0~7 INC direct INC @Ri ;i =0,1 INC DPTR 指令“INC DPTR”,16位数增1指令。首先对低8位指针DPL执行加1,当溢出时,就对DPH的内容进行加1,不影响标志Cy。 3.3.2 算术运算类指令 * 4 带借位的减法指令 从A的内容减去指定变量和进位标志Cy的值,结果存在A中。 SUBB A,Rn ; (A)-(Rn)-Cy→A,n =0~7 SUBB A,direct ; (A)-(direct)-Cy→A SUBB A,@Ri ; (A)-((Ri))-Cy→A, i =0,1 SUBB A,#data ; (A)-#data-Cy→A 3.3.2 算术运算类指令 * 5 减1指令 指定的变量减1。若原来为00H,减1后下溢为FFH,不影响标志位(P标志除外)。 DEC A ;(A)-1→A DEC Rn ;(Rn)-1→Rn,n=0~7 DEC direct;(direct)-1→direct DEC @Ri ;((Ri))-1→(Ri),i =0,1 3.3.2 算术运算类指令 * 6 乘法指令 积的低字节在累加器A中,高字节在B中。 MUL AB ;A×B→BA 7 除法指令 商(为整数)存放在A中,余数存放在B中。 DIV AB ;A/B→A(商),余数→B 8 其它指令 十进制调整指令:DA。 3.3.3 逻辑操作类指令 * 1 累加器A 清“0”指令 累加器A清0。 CLR A 2 累加器A求反指令 累加器A的内容按位逻辑取反。 CPL A 7 其它指令 累加器半字节交换指令:SWAP;逻辑与指令:ANL;逻辑或指令:ORL;逻辑异或指令:XRL。 3.3.3 逻辑操作类指令 * 3 左环移指令 A向左循环移位,位7循环移入位0。 RL A 4 带进位左环移指令 累加器A的内容和进位标志位Cy一起向左环移一位。 RLC A 3.3.3 逻辑操作类指令 * 5 右环移指令 A向右循环移位,位0循环移入位7。 RR A 6 带进位右环移指令 累加器A的内容和进位标志位Cy一起向右环移一位。 RRC A 3.3.4 控制转移类指令 * 1 条件转移指令 执行指令时,如条件满足,则转移;不满足,则顺序执行下一指令。转移目的地址在以下一条指令首地址为中心的256B范围内(-128~+127)。 JZ rel ;如果累加器内容为0,则执行转移 JNZ rel ;如果累加器内容非0,则执行转移 3.3.4 控制转移类指令 * 2 比较不相等转移指令 比较前两个操作数大小,如果值不相等则转移,并转向目的地址。 CJNE A, direct,rel CJNE A, #data,rel CJNE Rn, #data,rel CJNE @Ri,#data,rel 3.3.4

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档