




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3 1指令系统基本概念 标号 操作码操作数 注释 3 1 1指令基本格式 第3章80C51系列单片机指令系统和汇编程序设计 标号 指令的符号地址 用于一段功能程序的识别标记或控制转移地址 指令前的标号代表该指令的地址 是用符号表示的地址 一般用英文字母和数字组成 标号必须用冒号 与操作码分隔 操作码 表示指令的操作功能 操作码用助记符表示 它代表了指令的操作功能 操作码是指令的必需部分 是指令的核心 不可缺少 操作数 参加操作的数据或数据地址 操作数与操作码之间用空格分隔 操作数与操作数之间用逗号 分隔 操作数可以是数据 也可以是数据的地址 数据地址的地址或操作数的其他信息 操作数可分为目的操作数和源操作数 操作数可用二进制数 十进制数或十六进制数表示 操作数的个数可以是0 3个 注释 指令功能说明 注释属于非必需项 是为便于阅读 对指令功能作的说明和注解 注释必须以 开始 3 1 2指令分类 按指令功能分类 可分为数据传送类 算术运算类 逻辑运算类 位操作类和控制转移类等5大类指令 80C51共有111条指令 按指令长度分类 可分为1字节 2字节和3字节指令 按指令执行时间分类 可分为1机周 2机周和4机周指令 3 1 3指令系统中的常用符号 bit 位地址 代表片内RAM中的可寻址位00H 7FH及SFR中的可寻址位 立即数符 data 8位立即数 data16 16位立即数 direct 8位直接地址代表内RAM00H 7FH或SFR的80H FFH 间接寻址符 如 Ri DPTR A PC A DPTR addr11 11位目的地址 addr16 16位目的地址 rel 带符号的8位偏移地址 用于转移指令 其范围是相对于下一条指令第1字节地址的 128 127个字节 3 2MCS 51系列单片机的寻址方式 例 寻址就是寻找操作数的地址 立即寻址 立即寻址是直接给出操作数 操作数前有立即数符 MOVA 30H 将立即数30H传送至A中MOVDPTR 5678H 将立即数5678H传送至DPTR 直接寻址 MOVA 3AH 将内RAM3AH单元中的数据传送至A中MOVA P0 将特殊功能寄存器P0口中的数据传送至A中说明 3AH和P0是以direct形式出现的直接地址 直接寻址是给出操作数的直接地址 直接寻址范围为内RAM128B和特殊功能寄存器 例 寄存器寻址 MOVA R0 将R0中的数据传送至A中 寄存器寻址的操作数在规定的寄存器中 规定的寄存器有 工作寄存器R0 R7 累加器A 双字节AB 数据指针DPTR 位累加器Cy这些被寻址寄存器中的内容就是操作数 例 寄存器间接寻址 MOVA R0 将以R0中内容为地址的存储单元中的数据传送至A中MOVXA DPTR 将外RAMDPTR所指存储单元中的数据传送至A中PUSHPSW 将PSW中数据传送至堆栈指针SP所指的存储单元中 间接寻址是根据操作数地址的地址寻找操作数 间接寻址用间址符 作为前缀 例 变址寻址 MOVCA A DPTR 例 在变址寻址中 操作数地址 基址 变址用于读ROM数据操作 将A的内容与DPTR内容相加 得到一个新地址 从该地址ROM中读取数据送入A中 相对寻址一般用于相对转移指令 转移目的地址 当前PC值 相对偏移量rel 将位地址07H 字节地址20H中最高位 中的数据传送至进位位Cy 相对寻址 位寻址 位寻址是对内RAM和特殊功能寄存器中的可寻址位进行操作的寻址方式 例 MOVC 07H 3 3MCS 51系列单片机的指令系统 MOVA Rn Rn A n 0 7 MOVA Ri Ri A i 0 1 MOVA direct direct A MOVA data data A 3 3 1数据传送类指令 内RAM数据传送指令 以累加器A为目的字节的传送指令 4条 MOVRn A A Rn n 0 7 MOVRn direct direct Rn n 0 7 MOVRn data data Rn n 0 7 以工作寄存器Rn为目的字节的传送指令 3条 以直接地址为目的字节的传送指令 5条 MOVdirect A A direct MOVdirect Rn Rn direct n 0 7 MOVdirect Ri Ri direct i 0 1 MOVdirect1 direct2 direct2 direct1 MOVdirect data data direct 以寄存器间址为目的字节的传送指令 3条 MOV Ri A A Ri i 0 1 MOV Ri direct direct Ri i 0 1 MOV Ri data data Ri i 0 1 2 16位数据传送指令 MOVDPTR data16 data16 DPTR 例 MOVDPTR 1234H DPTR 1234H该指令也可以用两条8位数据传送指令实现 MOVDPH 12H DPH 12HMOVDPL 34H DPL 34H DPTR 1234H MOVXA Ri Ri A i 0 1 MOVXA DPTR DPTR A MOVX Ri A A Ri i 0 1 MOVX DATR A A DATR 外RAM传送指令 4条 读ROM指令 2条 内RAM 包括特殊功能寄存器 用MOV指令传送 外RAM 用MOVX指令传送 ROM 用MOVC指令传送 MOVCA A DPTR A DPTR A MOVCA A PC PC 1 PC A PC A 三个不同的存储空间用三种不同的指令传送 PUSHdirect SP 1 SP direct SP POPdirect SP direct SP 1 SP 堆栈操作指令 2条 PUSH为入栈指令例PUSH30H 30H 2BH 具体操作是 先将堆栈指针SP的内容 0FH 加1 指向堆栈顶的一个空单元 此时SP 10H 然后将指令指定的直接寻址单元30H中的数据 2BH 送到该空单元中 POP为出栈指令例POP40H 40H 4CH 具体操作是 先将SP所指单元0FH 栈顶地址 中的数据 4CH 弹出 送到指定的内RAM单元40H 40H 4CH 然后SP 1 SP SP 0EH SP仍指向栈顶地址 交换指令 5条 XCHA Rn A Rn n 0 7 XCHA Ri A Ri i 0 1 XCHA direct A direct SWAPA A7 4 A3 0 字节交换指令 半字节交换指令 XCHDA Ri A3 0 Ri 3 0高4位不变 i 0 1 累加器高低四位互换 3 3 2算术运算类指令 ADDA Rn A Rn A n 0 7 有进位 Cy 1 无进位 Cy 0 ADDA Ri A Ri A i 0 1 有进位 Cy 1 无进位 Cy 0 ADDA direct A direct A有进位 Cy 1 无进位 Cy 0 ADDA data A data A有进位 Cy 1 无进位 Cy 0 加法指令 不带Cy加法指令 4条 带Cy加法指令 4条 ADDCA Rn A Rn Cy A n 0 7 有进位 Cy 1 无进位 Cy 0 ADDCA Ri A Ri Cy A i 0 1 有进位 Cy 1 无进位 Cy 0 ADDCA direct A direct Cy A有进位 Cy 1 无进位 Cy 0 ADDCA data A data Cy A有进位 Cy 1 无进位 Cy 0 减法指令 4条 SUBBA Rn A Rn Cy A n 0 7 有借位 Cy 1 无借位 Cy 0 SUBBA Ri A Ri Cy A n 0 1 有借位 Cy 1 无借位 Cy 0 SUBBA direct A direct Cy A 有借位 Cy 1 无借位 Cy 0 SUBBA data A data Cy A 有借位 Cy 1 无借位 Cy 0 INCA A 1 A INCRn Rn 1 Rn n 0 7 INC Ri Ri 1 Ri i 0 1 INCdirect direct 1 direct INCDPTR DPTR 1 DPTR 加1减1指令 加1指令 5条 减1指令 4条 DECA A 1 A DECRn Rn 1 Rn n 0 7 DEC Ri Ri 1 Ri i 0 1 DECdirect direct 1 direct 加1减1指令涉及A时 会影响P 但不影响其他标志位 DIVAB A B 商 A 余数 BCy 0 OV 0 BCD码调整指令 DAA 功能 对加法运算结果进行BCD码调整 乘除法指令 乘法指令 1条 MULAB A B BA 除法指令 1条 3 3 3逻辑运算及移位指令 ANLA Rn A Rn A ANLA Ri A Ri A ANLA data A data A ANLA direct A direct A ANLdirect A direct A direct ANLdirect data direct data direct 逻辑 与 运算指令 6条 逻辑 或 运算指令 6条 ORLA Rn A Rn A ORLA Ri A Ri A ORLA data A data A ORLA direct A direct A ORLdirect A direct A direct ORLdirect data direct data direct 逻辑 异或 运算指令 6条 XRLA Rn A Rn A XRLA Ri A Ri A XRLA data A data A XRLA direct A direct A XRLdirect A direct A direct XRLdirect data direct data direct CLRA 0 A CPLA A A 清零和取反指令 循环移位指令 4条 循环左移 RLA 带Cy循环左移 RLCA 循环右移 RRA 带Cy循环右移 RRCA MOVC bit bit Cy MOVbit C Cy bit 3 3 4位操作类指令 位传送指令 2条 位取反指令 CPLC C C CPLbit bit bit 位修正指令 6条 位清0指令 CLRC 0 C CLRbit 0 bit 位置1指令 SETBC 1 C SETBbit 1 bit 位逻辑 与 运算指令 ANLC bit C bit C ANLC bit C bit C 位逻辑 或 运算指令 ORLC bit C bit C ORLC bit C bit C 位逻辑运算指令 4条 相对转移指令SJMPrel PC 2 PC PC rel PC 3 3 5控制转移类指令 无条件转移指令 3条 长转移指令LJMPaddr16 addr15 0 PC 短转移指令AJMPaddr11 PC 2 PC addr10 0 PC10 0 PC15 11不变 间接转移指令 散转指令 JMP A DPTR A DPTR PC LJMP AJMP SJMP三条无条件转移指令的区别 转移范围不一样 LJMP转移范围是64KB AJMP转移范围是与当前PC值同一2KB SJMP转移范围是当前PC 128B 127B 使用AJMP和SJMP指令应注意转移目标地址是否在转移范围内 若超出范围 程序将出错 指令字节不一样 LJMP是3字节指令 AJMP SJMP是2字节指令 条件转移指令 13条 条件转移指令根据判断条件可分为 判C转移 判bit转移 判A转移 减1非0转移 比较不相等转移指令满足条件 则转移 不满足条件 则程序顺序执行 C 0转移指令 JNCrel PC 2 PC 若Cy 0 则PC rel PC 转移若Cy 1 则程序顺序执行 判C转移指令 2条 C 1转移指令 JCrel PC 2 PC 若Cy 1 则PC rel PC 转移若Cy 0 则程序顺序执行 bit 1转移并清0指令 JBCbit rel PC 3 PC 若 bit 1 则PC rel PC 转移 且0 bit 若 bit 0 则程序顺序执行 判bit转移指令 3条 bit 1转移指令 JBbit rel PC 3 PC 若 bit 1 则PC rel PC 转移若 bit 0 则程序顺序执行 bit 0转移指令 JNBbit rel PC 3 PC 若 bit 0 则PC rel PC 转移若 bit 1 则程序顺序执行 A 0转移指令 JZrel PC 2 PC 若A 0 则PC rel PC 转移若A 0 则程序顺序执行 判A转移指令 2条 A 0转移指令 JNZrel PC 2 PC 若A 0 则PC rel PC 转移若A 0 则程序顺序执行 减1非0转移指令 2条 DJNZdirect rel PC 3 PC direct 1 direct若 direct 0 则程序顺序执行若 direct 0 则PC rel PC 转移 DJNZRn rel PC 2 PC Rn 1 Rn 若Rn 0 则程序顺序执行若Rn 0 则PC rel PC 转移 比较转移指令 4条 CJNEA direct rel PC 3 PC 若A direct 则程序顺序执行 若A direct 则PC rel PC 转移 且若A direct Cy 0 若A direct Cy 1 CJNEA data rel PC 3 PC 若A data 则程序顺序执行 若A data 则PC rel PC 转移 且若A data Cy 0 若A data Cy 1 CJNERn data rel PC 3 PC 若Rn data 则程序顺序执行 若Rn data 则PC rel PC 转移 且若Rn data Cy 0 若Rn data Cy 1 CJNE Ri data rel PC 3 PC 若 Ri data 则程序顺
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论