版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/9/20,第三章 单片机指令系统,3.1 寻址方式 3.2 指令系统,2020/9/20,在汇编语言中,用助记符代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。 汇编程序把汇编语言翻译成机器语言的过程称为汇编。,2020/9/20,指令执行过程,程序是按要求实现的指令有序集合,是串行执行的。 事情要一步一步做,所以需要时钟 通过PC指向程序地址,完成取
2、指放到指令寄存器中 指令寄存器的译码,知道要做什么 按照要求完成任务 PC指向下一条指令,2020/9/20,2020/9/20,51单片机指令系统是一个具有255种代码的集合 一条汇编指令中最多包含4段:,2020/9/20,标号: 给程序指令起个名字 操作码 表明做什么 操作数 源操作数,目的操作数 ;注释 说明程序作用,参数定义 入口参数,返回值所在, 格式,2020/9/20,源操作数: “数”从哪里来 目的操作数: “数”放到哪里,找数的方式就是寻址方式,2020/9/20,3.1 寻址方式(共有7种),立即寻址 Immediate Constants 直接寻址 Direct Add
3、ressing 寄存器寻址 Register Instructions 寄存器间接寻址 Indirect Addressing 基址变址间接寻址 Indexed Addressing 相对寻址 Relative Offset Addressing 位寻址 Bits Addresing,2020/9/20,例:MOV R0,#34H MOV DPTR,#2345H MOV A,40H MOV B,P2 ;特殊功能寄存器只能用直接寻址访问 MOV A,R6 MOV A,R0 ;间接寻址只能用R0、R1或DPTR做地址指针 MOVX A,DPTR MOVC A,A+PC MOVC A,A+DPTR
4、;适用于访问程序存储器中的数据表格 SJMP LOOP1 JC LOOP2 ;相对寻址只出现在相对转移指令中 SETB 10H ;内部SRAM 22H中的第0位 CLR P1.1 ;位寻址针对20H2FH的位定义区和SFR位操作,2020/9/20,例: MOV DPTR, #TABLE MOVC A , A+DPTR TABLE: DB 3FH,06H,5BH,4FH ;7段共阴显示代码 1000H MOV A,#10H 1002H MOVC A,A+PC 1013H DB 03H 1014H DB 08H ,2020/9/20,可位寻址的SFR位地址,2020/9/20,说 明:,只有指令
5、表中的指令才有对应指令代码,计算机才能执行。编程时,不能随意创造发明指令。,1. 一条指令中不能同时出现两个工作寄存器:非法指令:MOV R1,R2MOV R2,R0,2. 间址寄存器只能使用 R0、R1。 非法指令: MOV A,R2,3. SFR区只能直接寻址,不能用寄存器间接寻址。非法指令: MOV R0,#80H MOV A,R0 ;(52系列的,认为是高128B的间接寻址),4.片外数据存储器不能直接寻址,且只能通过A累加器传递数据。 非法指令: MOVX A,2000H MOVX 2100H,2000H,2020/9/20,(1)对程序存储器(内、外):只能变址寻址 MOVC (2
6、)对内部数据存储器:MOV (3)对外部数据存储器:只能寄存器间址 MOVX,2020/9/20,3.2 指令系统介绍(共5类),数据传送 Data Transfers 29条 算术运算 Arithmetic Instructions 24条 逻辑运算 Logical Instructions 24条 位操作 Boolean Instructions 17条 控制转移 Jump Instructions 17条 共111条,2020/9/20,回忆:51单片机的主要寄存器,(1)算术逻辑单元ALU (2)累加器ACC,程序中有时可以简写为A (3)辅助寄存器B,乘除指令用到 (4)程序计数器P
7、C,“不”能用程序直接访问 (5)数据指针DPTR,有的单片机有两个 (6)堆栈指针SP,复位时内容是07H,一定要记住。 (7)程序状态寄存器PSW 记住哪些指令影响标志位,2020/9/20,复位时 00,Cy(PSW.7)进位标志。有进位或借位时置1 AC(PSW.6)辅助进位标志。低4位有进位或借位时 F0(PSW.5)用户用位标志 RS1(PSW.4)、RS0(PSW.3)选择通用寄存器组 R0R7 所在内部RAM中的位置 OV(PSW.2)溢出标志。 F1(PSW.1)保留。51未用,52为用户标志位 P(PSW.0)奇偶标志。ACC中1的个数为奇数时置1,208=0D0H PSW
8、的地址,2020/9/20,影响标志位的指令(X表示有影响,o表示清零,1表示置一),2020/9/20,Rn 当前工作寄存器中的某一个,即R0R7; Ri R0或者R1 Direct 单片机内部RAM低128字节(00h7fh)中的某个字节地 址,或者是某个专用寄存器的名字; #data 8位(1字节)立即数 #data16 16位(2字节)的立即数 Addr16 16位目的地址,在LJMP和LCALL的指令中采用 Addr11 11位目的地址,只在AJMP和ACALL指令中采用 Rel 相对转移指令中的偏移量。 DPTR 数据指针(由DPH和DPL构成) Bit 内部RAM(包括专用寄存器
9、)中可寻址位的地址或名字 A 累加器ACC B B寄存器 间接寻址标志 / 加在位地址前,表示对该位状态取反 (X) 某寄存器或某单元的内容 (X) 由X间接寻址的单元中的内容,指令中符号的意义说明,2020/9/20,一、数据传送类指令,格式: MOV 目的, 源 传送到A累加器的指令 MOV A, Rn ;n=0,1,.7 MOV A,direct ; direct是地址 MOV A,Ri ;i=0,1 MOV A,#data ; #data是立即数 MOV A,B ;,2020/9/20, 传送到Rn的指令 MOV Rn, A MOV Rn,direct MOV Rn,#data 传送到
10、内部RAM或特殊功能寄存器 MOV direct, A MOV direct,Rn MOV direct, direct ;地址到地址 MOV direct, Ri MOV direct, #data (高128只能用间接寻址),2020/9/20,传送到Ri指定的单元 MOV Ri , direct MOV Ri, A 传送到DPTR寄存器 MOV DPTR,#data16 传送到外部RAM中(配合WR,RD) MOVX A,DPTR MOVX DPTR,A MOVX A,Ri MOVX Ri,A (先送高位地址到P2中),2020/9/20,堆栈操作指令 MOV SP,#data ;设堆栈
11、 PUSH direct ; POP direct ; PUSH A ; POP A ; PUSH PSW (ACALL、LCALL、中断要硬件执行PC入栈, 先低8位,后高8位。) 代码区(程序区)操作指令 MOVC A,A+DPTR MOVC A,A+PC (查表用),错 !,PUSH ACC POP ACC,SPSP+1;(SP) (direct),(SP) (direct);SP SP-1,MCS -51 提供一个向上升的堆栈, 因此SP设置初值时要充分考虑堆栈的深度, 要留出适当的单元空间, 满足堆栈的使用。,2020/9/20, 字节交换指令 XCH A,Rn ;A Rn XCH
12、A,Ri ;A (Ri) XCH A,direct ;A (direct) (全字节交换) SWAP A ;半字节交换(高4位与低4位交换),2020/9/20,二、 算术运算指令,(一) 加法指令 不带进位加指令 ADD A,Rn ;A=A+Rn ADD A,direct ;A=A+(direct) ADD A,Ri ;A=A+(Ri) ADD A,#data ;A=A+data 带进位加指令 ADDC A,Rn ;A=A+Rn+Cy ADDC A,direct ;A=A+(direct)+Cy ADDC A,Ri ;A=A+(Ri)+Cy ADDC A,#data ;A=A+data+Cy
13、,2020/9/20, 增量(增1)指令 INC A ;A=A+1 INC Rn ;Rn=Rn+1 INC direct ;(direct)=(direct)+1 (地址中的数增一) INC Ri ;(Ri)=(Ri)+1 INC DPTR ;DPTR=DPTR+1 十进制调整指令 DA A (在BCD码运算中,要进行调整),2020/9/20,(二) 减法指令 带借位减法指令 没有不带借位C减法指令 SUBB A,Rn ;A=A-Rn-Cy SUBB A,direct ;A=A-(direct)-Cy SUBB A,Ri ;A=A-(Ri)-Cy SUBB A,#data ;A=A-data
14、-Cy (对BCD码无调整指令) 减1指令 DEC A ;A=A-1 DEC Rn ;Rn=Rn-1 DEC direct ;(direct)=(direct)-1 DEC Ri ;(Ri)=(Ri)-1,2020/9/20,(三) 乘法指令,MUL AB ;A X B (高位在B中,低位在A中 clear Cy 结果小于等于255 OV=0,大于则置1),(四) 除法指令,DIV AB ;A/B (整数在A中,余数在B中,clear Cy A=0,清零 CPL A ;将A中的数按位取反 RL A ;A中的数左移一位(不带Cy) RR A ;A中的数右移一位(不带Cy) (小循环) RLC A
15、 ; A中的数带Cy左移一位 RRC A ; A中的数带Cy右移一位 (大循环),2020/9/20, 逻辑与指令(按位与) ANL A,Rn ;A=A(direct)=(direct)A=A或Rn ORL A,direct ;A=A或(direct) ORL A,Ri ;A=A或Ri ORL A,#data ;A=A或data ORL direct,A ;(direct) =direct或A ORL direct,#data ;(direct)=(direct)或data,2020/9/20, 逻辑异或指令(按位异或) XRL A,Rn ;A=A异或Rn XRL A,direct ;A=A异
16、或(direct) XRL A,Ri ;A=A异或Ri XRL A,#data ;A=A异或data XRL direct,A ;(diect)=(direct)异或A XRL direct,#data ;(diect)=(direct)异或data,2020/9/20,四、控制转移指令,(一) 无条件转移 SJMP rel ;在-128+127内跳转 SJMP $ ;原地转圈 AJMP addr11 ;在 2K地址内跳转 LJMP addr16 ;在 64K地址内跳转,2020/9/20,JZ rel ; 在 -128+127内跳转 (A=0,跳转) JNZ rel ; 在 -128+127
17、内跳转 (A!=0,跳转),(二) 有条件转移, 对累加器A的判断转移,2020/9/20, 比较转移(不相等跳转) CJNE A,direct,rel; CJNE A,#data,rel; CJNE Rn,#data,rel; CJNE Ri,#data,rel; (跳转范围-128+127,相对寻址) 减1不为0跳转 DJNZ Rn,rel; DJNZ direct,rel; (跳转范围-128+127,相对寻址),2020/9/20,(三)调用子程序 ACALL rel(addr11) ;在2K内 LCALL rel(addr16) ;在64K内,2020/9/20,(四)调用子程序返回
18、指令 RET ;一般调用返回(子程序) RETI ;硬件中断返回(中断程序),(五)空操作指令 NOP ;不做任何操作,延时一个机器周期,2020/9/20,五、 位操作指令,2020/9/20,片内RAM中的位寻址区,2020/9/20,特殊功能寄存器位地址表,2020/9/20,2020/9/20, 位传送指令 MOV C, bit ; C是进位位(Cy) MOV bit,C ; C是进位位(Cy) (bit可以是I/O口,也可以是bit变量) 位变量修改指令 CLR C ; Cy=0 CLR bit ; bit=0 CPL C ;C取反 CPL bit ;bit取反 SETB C ;C=1; SETB bit ;bit=1; (bit可以是I/O口,也可以是bit变量),2020/9/20, 位变量逻辑与指令 ANL C,bit ;C=C与bit ANL C,/b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医药商品物流员岗前技能评估考核试卷含答案
- 紫胶蒸发工安全教育模拟考核试卷含答案
- 焊材配拌粉工常识竞赛考核试卷含答案
- 2024年涿鹿县招教考试备考题库附答案
- 2024年莎车县事业单位联考招聘考试真题汇编附答案
- 2024年金陵科技学院马克思主义基本原理概论期末考试题附答案
- 2024年郑州航空工业管理学院辅导员考试参考题库附答案
- 2024年许昌市遴选公务员考试真题汇编附答案
- 旅游行业导游服务标准操作手册(标准版)
- 2025年井研县事业单位联考招聘考试真题汇编附答案
- 2025成人肠造口护理指南课件
- 电焊工安全宣讲课件
- 水泵基础知识培训课件教学
- 内镜院感培训课件
- 2026中征(北京)征信有限责任公司招聘13人考试题库附答案
- 期末重点易错知识点复习(课件)-2025-2026学年一年级上册数学北师大版
- 2026年杨凌职业技术学院单招职业技能考试题库含答案详解
- 2025云南昆明元朔建设发展有限公司第二批收费员招聘9人笔试考试参考题库及答案解析
- 国开本科《国际法》期末真题及答案2025年
- 2025年榆林神木市信息产业发展集团招聘备考题库(35人)及完整答案详解1套
- 2025新疆能源(集团)有限责任公司共享中心招聘备考题库(2人)带答案详解(完整版)
评论
0/150
提交评论