内容一51单片机汇编指令.

上传人:我** 文档编号:117065107 上传时间:2019-11-18 格式:PPT 页数:60 大小:2.14MB
返回 下载 相关 举报
内容一51单片机汇编指令._第1页
第1页 / 共60页
内容一51单片机汇编指令._第2页
第2页 / 共60页
内容一51单片机汇编指令._第3页
第3页 / 共60页
内容一51单片机汇编指令._第4页
第4页 / 共60页
内容一51单片机汇编指令._第5页
第5页 / 共60页
点击查看更多>>
资源描述

《内容一51单片机汇编指令.》由会员分享,可在线阅读,更多相关《内容一51单片机汇编指令.(60页珍藏版)》请在金锄头文库上搜索。

1、 2 内容一 51单片机汇编指令 通过本章学习,同学们掌握51单 片机汇编指令的用法,能够编写 简单的汇编程序,在此基础上深 刻理解51单片机的内部结构,并 能根据实际需要设计并实现简单 的51单片机控制系统。 一、51单片机指令格式 标号:操作码 目的操作数,源操作数 ;注释 51汇编指令组成: ORG 0000H START: SETB P1.0 ;P1.0口置高电平 LCALL DELAY ;调用延时子程序 CLR P1.0 ;P1.0口置低电平 LCALL DELAY LJMP START ;程序跳转到标号为START的地方继续执 行 DELAY: MOV R5, #20 ;延时子程序

2、D1: MOV R6,#20 D1: MOV R6, #20 D2: MOV R7, #250 DJNZ R7, $ DJNZ R6, D2 DJNZ R5, D1 RET ;子程序返回 END 二、51单片机寻址方式 l 立即数寻址 l 直接寻址 l 寄存器寻址 l 寄存器间接寻址 l 位寻址 寻址方式:通常是指某一个CPU指令系统中规定的寻 找操作数所在地址的方式,或者说通过什么的方式找 到操作数。 二、51单片机寻址方式 l 立即数寻址 立即寻址方式是操作数包括在指令字节中,指令操作码后面 字节的内容就是操作数本身,其数值由程序员在编制程序时 指定,以指令字节的形式存放在程序存储器中。该

3、操作数直 接参与操作,所以又叫立即数,用“#”号表示。立即数只能作 为源操作数,不能当作目的操作数。 例如: MOV A,#52H ;A52H MOV DPTR,#5678H ;DPTR5678H 二、51单片机寻址方式 l 直接寻址 在指令中含有操作数的直接地址,该地址指出了参与操作的 数据所在的字节地址或位地址。直接寻址方式可以访问2种存 储空间:内部数据存储器的低128个字节单元(00H7FH)和 80HFFH中的(SFR)特殊功能寄存器。 例如: MOV A,52H ;把片内RAM字节地址52H单元的内容送累 加器A中。 MOV 50H,60H ;把片内RAM字节地址60H单元的内容送

4、到 50H单元中。 INC 60H ;将地址60H单元中的内容自加1。 二、51单片机寻址方式 l 寄存器寻址 由指令指出某一个寄存器中的内容作为操作数,这种寻址方 式称为寄存器寻址。寄存器一般指累加器A和工作寄存器 R0R7。 例如: MOV A,Rn ;A(Rn) 其中n为07之一,Rn是工 作寄存器。 MOV Rn,A ;Rn(A) MOV B,A ;B(A) 二、51单片机寻址方式 l 寄存器间接寻址 寄存器间接寻址方式中,存放在寄存器中的内容不是操作数 ,而是操作数所在的存储器单元地址。寄存器间接寻址只能 使用寄存器R0或Rl作为地址指针,来寻址内部RAM(00H FFH)中的数据。

5、寄存器间接寻址也适用于访问外部RAM,可 使用R0,Rl或DPTR作为地址指针。寄存器间接寻址用符号 “”表示。 例如: MOV A, R0 ;A (R0) MOV A ,R1 ;A (R1) 二、51单片机寻址方式 例如: MOV DPTR,#3456H ;DPTR3456H MOVX A,DPTR ;A (DPTR) 用寄存器间接寻址方式可访问的存储空间 1、内部RAM低128单元 2、外部RAM 64K 二、51单片机寻址方式 l 位寻址 位操作指令能对内部RAM中的位寻址区(20H2FH)和某 些有位地址的特殊功能寄存器进行位操作。也就是说可对位 地址空间的每个位进行位状态传送、状态控

6、制、逻辑运算操 作。 例如: SETB TR0 ;TR01 CLR 00H ;(00H)0 MOV C,57H ;将57H位地址的内容传送到位累加器C 中 ANL C,5FH ;将5FH位状态与进位位C相与,结果在 C中 二、51单片机寻址方式 寻寻址方式使用变变量寻寻址空间间 立即寻寻址#data程序存储储器(指令的常数部分) 直接寻寻址direct 片内RAM低128字节节,特殊功能寄存器 SFR 寄存器寻寻址Rn,A,B,DPTR工作寄存器R0R7,A,B,DPTR 寄存器间间接寻寻址Ri,DPTR片内RAM低128字节节,片外RAM 变变址寻寻址A+PC,A+DPTR程序存储储器(数据

7、表) 相对寻对寻 址PC + rel程序存储储器256字节节范围围 位寻寻址C,bit 片内RAM的20H2FH,特殊功能寄存 器可寻寻址位(字节节地址能被8整除的SFR 中的各位) 三、51单片机指令 按指令的功能,51指令系统可分为下列5类: 1)数据传送类指令(29条) 2)算术运算类指令(24条) 3)逻辑运算及移位类指令(24条) 4)位操作类指令(17条) 5)控制转移类指令(17条) 从指令长度看,单字节指令有49条,双字节指令有45条,三字 节指令有17条;从指令执行的时间来看,单周期指令有64条, 双周期指令有45条,只有乘法、除法两条指令的执行时间是4个 机器周期。 三、5

8、1单片机指令 符 号含 义 Rn表示当前选定寄存器组的工作寄存器R0R7 Ri表示作为间接寻址的地址指针R0R1 #data表示8位立即数,即00HFFH #data16表示16位立即数,即0000HFFFFH addr16表示16位地址,用于64K范围内寻址 addr11表示11位地址,用于2K范围内寻址 direct8位直接地址,可以是内部RAM区的某一单元或某一专用功能寄存器的地址 Rel带符号的8位偏移量(-128+127) Bit位寻址区的直接寻址位 (X)X地址单元中的内容,或X作为间接寻址寄存器时所指单元的内容 将 后面的内容传送到前面去 指令符号意义: 三、51单片机指令 1)

9、数据传送类指令(29条) 数据传送类指令一般的操作是把源操作数传送到指令所指定 的目标地址。指令执行后,源操作数保持不变,目的操作数为 原操作数所替代。 数据传送类指令用到的助记符有:MOV,MOVX,MOVC, XCH,XCHD,PUSH,POP,SWAP。 三、51单片机指令 内部数据传送类指令 MOV 格式: MOV 目的操作数,源操作数 功能:目的操作数(源操作数中的数据) 以累加器为目的操作数的内部数据传送指令 MOV A,Rn; A(Rn) MOV A,direct; A(direct) MOV A,Ri; A(Ri) MOV A,#data; Adata 三、51单片机指令 以R

10、n为目的操作数的内部数据传送指令 MOV Rn,A ;Rn(A) MOV Rn,direct ;Rn(direct) MOV Rn,#data ;Rndata 数据传送到内部RAM单元或特殊功能寄存器SFR的指令 MOV direct,A ;direct(A) MOV direct,Rn ;direct(Rn) MOV direct1,direct2 ;direct(direct2) MOV direct,Ri ;direct(Ri) MOV direct,#data ;direct#data MOV Ri,A ;(Ri ) () MOV Ri,direct ;(Ri)(direct) MOV

11、 Ri,#data ;(Ri)data MOV DPTR,#data16 ;DPTRdata16 三、51单片机指令 directRi Rn#data A 三、51单片机指令 片外数据存储器数据传送指令 MOVX 格式: MOVX 目的操作数,源操作数 功能:目的操作数(源操作数中的数据) 累加器A与外部数据存储器之间的传送指令 MOVX A,DPTR ;A(DPTR) MOVX A,Ri ;A(Ri) MOVX DPTR,A ;(DPTR)A MOVX Ri,A ;(Ri) A 三、51单片机指令 程序存储器内容送累加器 MOVC 格式: MOVC 目的操作数,源操作数 功能:目的操作数(源

12、操作数中的数据) 程序存储器内容送累加器 MOVC A,A+PC MOVC A,A+DPTR 三、51单片机指令 堆栈操作指令(PUSHPOP) 格式: PUSH direct POP direct 单片机的内部RAM中,可以设定一个先进后出、后进先出的 区域,称其为堆栈。在特殊功能寄存器中有一个堆栈指针SP ,它指出栈顶的位置。进栈指令的功能是:首先将堆栈指针 SP的内容加1,然后将直接地址所指出的内容送入SP所指出 的内部RAM单元;出栈指令的功能是:将SP所指出的内部 RAM单元的内容送入由直接地址所指出的字节单元,接着将 SP的内容减1。 三、51单片机指令 堆栈操作指令 例如:进入中

13、断服务程序时,把程序状态寄存器PSW、累加 器A、数据指针DPTR进栈保护。设当前SP为60H。则程序段 MOV SP,#60H PUSH PSW PUSH ACC PUSH DPL PUSH DPH 执行完指令后, SP=64H,(61H)=PSW,(62H)=ACC,(63H)=DPL,(64H)=DPH 三、51单片机指令 字节交换指令 整字节交换指令 XCH A,Rn ;(A)(Rn) XCH A,direct ;(A)(direct) XCH A,Ri ;(A)(Ri) 半字节交换指令 XCHD A,Ri 累加器高低半字节交换指令 SWAP A Keil软件调试程序1 Keil软件调

14、试程序2 Keil软件调试程序3 三、51单片机指令 2)算术运算类指令(24条) 算术运算类指令包括加、减、乘、除4种基本算术运算指令 ,这4种指令能对8位的无符号数进行直接运算,借助溢出标志 ,可对带符号数进行补码运算;借助进位标志,可实现多精度 的加、减运算,同时还可对压缩的BCD码进行运算,其运算功 能较强。 算术指令用到的助记符共有8种:ADD、ADDC、INC、 SUBB、DEC、DA 、MUL、DIV。 算术运算指令执行结果将影响进位标志(Cy),辅助进位标 志(Ac)、溢出标志位(Ov)。 三、51单片机指令 加法指令 普通加法指令 ADD A,Rn ;A(A)+(Rn) AD

15、D 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) 三、51单片机指令 加法指令 增量指令 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 十进制调整指令

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号