- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章80c51单片机的指令系统
一、概述 指令分类 数据传送类指令(28条) 算术运算类指令(24条) 逻辑运算类指令(25条) 控制转移类指令(17条) 布尔操作类指令(17条) 3.符号的约定 Rn 当前寄存器组的8个通用寄存器,n 0-7 Ri R0、R1只能用做间址寄存器,i 0,1 direct 表示8为地址 #data 表示8位立即数 bit 片内ram直接寻址位 二、寻址方式和寻址空间 立即寻址 如: mov a,#3ah mov dptr,#0a2b3h 2.直接寻址 如:mov a,3ah 应用范围: 低128单元 特殊功能寄存器 直接寻址是寻址特殊功能寄存器的唯一方法。 3. 寄存器寻址 如:inc r0 通用寄存器Rn 用RS0、RS1选择四组中的一组。 某些特殊功能寄存器 4. 寄存器间接寻址 片内RAM低128单元,只能用R0、R1作间址寄存器;如:mov a,@r0 片外RAM 64k字节,只能用DPTR做间址寄存器;如:movx a,@dptr 片外RAM 低256字节,除了用DPTR做间址寄存器外,也能用Ri:movx a,@r1 堆栈操作 5. 相对寻址 相对转移指令中,给出的地址为相对当前地址的偏移量。偏移量为有符号数。 8位有符号数的范围是-128-127。 如:jc rel 6. 变址寻址 只有三条指令: movc a,@a+dptr movc a,@a+pc jmp @a+dptr 7. 位寻址 片内位寻址RAM 片内特殊功能寄存器 指令中的表示方法: 直接使用地址 单元地址加位 特殊功能寄存器符号加位 位名称 三、指令系统 数据传送类指令 可以进行直接地址到直接地址传送 可以用R0、R1和DPTR 访问片外RAM 累加器A功能丰富、强大 能访问程序存储器 1. 一般传送指令 以累加器A为目的操作数。 mov a, Rn mov a, direct mov a, @Ri mov a, #datai 以Rn为目的操作数。 mov Rn, a mov Rn, direct mov Rn, #data - 以直接地址为目的操作数 mov direct, a mov direct, Rn mov direct, direct mov direct, @Ri mov direct, #data 以间接寻址@Ri为目的操作数 mov @Ri, a mov @Ri, direct mov @Ri, #data 2. 目的地址传送指令 只有一条: mov dptr, #data16 如: mov dptr, #1234 dph 12 dpl 34 3.累加器传送指令 字节交换指令 xch a,Rn xch a,direct xch a,@Ri 半字节交换指令 xchd a,@Ri A与片外存储器的传送指令 movx a, @Ri movx a, @dptr movx @dptr, a movx @Ri, a - A与程序存储器传送指令 movc a, @a+pc movc a, @a+dptr 堆栈操作 push direct pop direct 2.算术运算类指令 加法指令 加法指令 add a,Rn ;a+Rn- a add a,direct add a,@Ri add a,#data 这四个指令影响标志位AC、CY、OV、P 加法指令 2.带进位加法指令 addc a,Rn ;a+Rn+CY- a addc a,direct addc a,@Ri addc a,#data 这四个指令影响标志位AC、CY、OV、P R6+R7: mov a,r6 Add a,r7 mov r6,a mov a,#0 addc a,#0 mov r7,a 加法指令 3.加1指令 inc Rn inc direct inc @Ri inc a inc dptr 这些指令不影响标志位 加法指令 4.二-十进制调整指令 da a 设a 56h,r3 67h,CY 1看成压缩的BCD码相加: addc a,r3 ;a 0beh da a ;a 0be+6 0c4h a 0c4h +60h 124h 结果: a 24h cy 1 减法指令 带借位减法 subb a,Rn subb a,direct subb a,@Ri subb a,#data 没有不带借位的减法,可以先对CY清零: clr c 减法指令 减1指令 dec Rn dec direct dec @Ri dec a 无对dptr的减一操作 举例 由于无对dptr的减一操作,可用软件实现: mov a,dpl dec a mov dpl,a cjne a,#0ffh,over mov a,dph dec a mov dph,a over: 乘法指令 mul a
文档评论(0)