第3章-80C51单片机的寻址方式和指令系统《单片机原理与C51基础》课件.ppt





《第3章-80C51单片机的寻址方式和指令系统《单片机原理与C51基础》课件.ppt》由会员分享,可在线阅读,更多相关《第3章-80C51单片机的寻址方式和指令系统《单片机原理与C51基础》课件.ppt(173页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3 3章章 80C51 80C51单片机的寻址方式和指令系统单片机的寻址方式和指令系统第第3 3章章 目录目录n3.1 3.1 汇编语言指令格式及其常用符号汇编语言指令格式及其常用符号n3.2 80C513.2 80C51的寻址方式的寻址方式n3.3 3.3 数据传送类指令数据传送类指令n3.4 3.4 算术运算类指令算术运算类指令n3.5 3.5 逻辑运算及移位类指令逻辑运算及移位类指令n3.6 3.6 控制转移类指令控制转移类指令n3.7 3.7 位操作类指令位操作类指令80C5180C51单片机的寻址方式和指令系统单片机的寻址方式和指令系统n机器指令机器指令:是指单片机能直接识别和执
2、行的指令是二进制编码是指单片机能直接识别和执行的指令是二进制编码(书写时常采书写时常采用十六进制的形式用十六进制的形式)指令,称为机器指令,也称为机器语言。机指令,称为机器指令,也称为机器语言。机器语言难编写、难读懂、难查错和难交流。器语言难编写、难读懂、难查错和难交流。n符号指令符号指令:为了编写程序的方便,人们采用便于记忆的符号(助记符)来表为了编写程序的方便,人们采用便于记忆的符号(助记符)来表示机器指令,从而形成了所谓的符号指令,它是机器指令的符号示机器指令,从而形成了所谓的符号指令,它是机器指令的符号表示,所以它与机器指令一一对应。符号指令必须转换成机器指表示,所以它与机器指令一一对
3、应。符号指令必须转换成机器指令后,单片机才能识别和执行,汇编语言就是典型的符号指令。令后,单片机才能识别和执行,汇编语言就是典型的符号指令。80C5180C51单片机的寻址方式和指令系统单片机的寻址方式和指令系统n单片机常用的编程语言及其关系单片机常用的编程语言及其关系:单片机主要是采用汇编语言和C语言,其各自有自己的指令体系。汇编语言程序编译后代码效率高,但不同机型之间程序不能互相移植。早期C语言编制的程序编译成二进制代码后,编译效率低,占用ROM空间过大,在业界应用较少。随着高效率C语言编译器的成功开发,目前用C语言编制的程序其编译后的代码效率只比直接使用汇编语言低20%左右。而其高级语言
4、所具有的可读性好、可移植性强的优势受到了开发人员的认可。3.1 3.1 汇编语言指令格式及其常用符号汇编语言指令格式及其常用符号n3.1 3.1 汇编语言指令格式及其常用符号汇编语言指令格式及其常用符号3.1.1 汇编语言指令格式3.1.2 机器码的三种格式3.1.3 指令中常用符号说明3.1 3.1 汇编语言指令格式及其常用符号汇编语言指令格式及其常用符号n3.1.1 3.1.1 汇编语言指令格式汇编语言指令格式 一条完整的80C51系列单片机汇编语言指令通常由标号、操作码、操作数(一般包括目的操作数和源操作数)及指令的注释几个字段构成。指令格式如下:标号标号:操作数操作数 ,操作数,操作数
5、;注释;注释(注:在一条指令中,方括号中的内容可有可无,尖括号中的内容必须有。由指令格式可见,操作码是指令的核心,不可缺少。)3.1 3.1 汇编语言指令格式及其常用符号汇编语言指令格式及其常用符号n3.1.1 3.1.1 汇编语言指令格式汇编语言指令格式标号表示与标号同一行指令的起始地址,是一种符号地址。标号可以由18个字符组成,第一个字符必须是字母,其余字符可以是字母、数字或其他特定符号,标号后跟分隔符“:”。操作码指令的助记符,规定了指令所能完成的操作功能。操作数指出了指令的操作对象,操作数可以是一个具体的数据,也可以是存放数据的单元地址,还可以是符号常量或符号地址等。操作码与操作数之间
6、必须用空格分隔。在一条指令中可能有多个操作数,操作数与操作数之间用逗号“,”分隔。注释为了方便阅读而添加的解释说明性的文字,用分号“;”开头。3.1 3.1 汇编语言指令格式及其常用符号汇编语言指令格式及其常用符号n3.1.2 3.1.2 机器码的三种格式:机器码的三种格式:1、单字节指令(49条):两种编码格式8位编码只表示一个操作码的编码,其格式为:例如:INC A 该汇编指令的机器码为:0000 0100B其十六进制数为04H,操作数(累加器A)隐含在操作码中。注意:在汇编语言指令中,“A”代表累加器,而用“ACC”代表累加器的地址E0H。3.1 3.1 汇编语言指令格式及其常用符号汇编
7、语言指令格式及其常用符号n3.1.2 3.1.2 机器码的三种格式:机器码的三种格式:1、单字节指令(49条):两种编码格式8位编码中包含操作码和寄存器编码,其格式为:这类指令中高5位表示操作码,低3位rrr为存放操作数的寄存器Rn(n=0,7)的编码。例如:MOV A,R0。该指令的编码为:1110 1000B其十六进制表示为E8H,低三位000为R0的编码。3.1 3.1 汇编语言指令格式及其常用符号汇编语言指令格式及其常用符号n3.1.2 3.1.2 机器码的三种格式:机器码的三种格式:3、三字节指令(17条):三字节指令为24位编码,其格式为:第一个字节表示操作码,后两个字节为参与操作
8、的操作数data或数据所在地址direct。例如:MOV 20H,#50H。该指令的3个字节编码为0111 0101B,0010 0000B,0101 0000B。其十六进制表示为75H,20H,50H。第一个字节存放75H这个操作码,第二个字节存放目的地址20H,第三个字节存放源操作数50H3.1 3.1 汇编语言指令格式及其常用符号汇编语言指令格式及其常用符号n3.1.3 3.1.3 指令中常用符号说明指令中常用符号说明在描述80C51系列单片机指令系统的功能时,经常使用的符号及意义如下:rel 补码形式表示的8位地址偏移量,其值的范围:128127;bit 片内RAM位寻址区或可位寻址的
9、特殊功能寄存器的位地 址;间接寻址或变址寻址的前缀标志;C 进位标志位,也称为位累加器;加在位地址的前面,表示对该位先求反再参与操作,但不影响该位的值;(X)由X指定的寄存器或地址单元中的内容;(X)由X寄存器的内容作为地址的存储单元的内容;3.1 3.1 汇编语言指令格式及其常用符号汇编语言指令格式及其常用符号n3.1.3 3.1.3 指令中常用符号说明指令中常用符号说明在描述80C51系列单片机指令系统的功能时,经常使用的符号及意义如下:$:本条指令的起始地址;指令操作流程,将箭头右边的内容送到箭头左边的单元中;数据交换。3.2 80C513.2 80C51的寻址方式的寻址方式 n寻址:寻
10、找操作数地址或指令转移的目标地址。寻址:寻找操作数地址或指令转移的目标地址。n寻址方式:是指寻找操作数或指令目标地址的方式就是寻址方式。寻址方式:是指寻找操作数或指令目标地址的方式就是寻址方式。n寻址方式总体上分为两大类:寻址方式总体上分为两大类:一是操作数的寻址一是操作数的寻址二是跳转、调用等指令所涉及的跳转目标地址和调用程序的首地二是跳转、调用等指令所涉及的跳转目标地址和调用程序的首地址的寻址。址的寻址。3.2 80C513.2 80C51的寻址方式的寻址方式 n80C5180C51单片机的寻址方式有七种单片机的寻址方式有七种:1.立即数寻址2.直接寻址3.寄存器寻址4.寄存器间接寻址5.
11、基址变址寻址6.相对寻址7.位寻址3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.13.2.1立即寻址立即寻址 立即寻址就是操作数在指令中直接给出的寻址方式。通常把出现在指令中的操作数称为立即数,为了与直接寻址指令中的直接地址相区别,指令中需要在直接给出的具体数据前面加“#”标志。【例3-1】执行指令:MOV A,#30H 后累加器A的值是多少?解:执行指令如图3-1 所示,(A)=30H。汇编指令MOV A,#30H编译成机器码后为:74H,30H,其中30H就是立即数,该指令功能是将30H这个数本身送入累加器A中,执行完这条指令后累加器A中的值为30H,即(A)=30H
12、。立即寻址所对应的存储空间为ROM空间(立即数在ROM中存放)。3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.13.2.1立即寻址立即寻址 3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.23.2.2立即寻址立即寻址 在指令中直接给出操作数存放在内部RAM的地址,或直接给出特殊功能寄存器的地址或符号,这就是直接寻址方式。此时,指令的操作数部分就是操作数的地址。【例3-2】已知内部RAM(30H)=58H,执行指令“MOV A,30H”后,(A)=?解:指令执行过程如图3-2所示,结果:(A)=58H。该指令在ROM中的机器码为:E5H、30H,其中30
13、H表示直接地址,该指令功能是把内部RAM地址为30H单元中的操作数58H传送给累加器A,累加器原先的数值被覆盖。3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.23.2.2立即寻址立即寻址直接寻址方式可访问以下存储空间:(1)内部RAM低128个字节单元,在指令中直接地址以单元地址的形式给出;(2)特殊功能寄存器。对于特殊功能寄存器,其直接地址既可以写成特殊功能寄存器的直接地址形式,如指令:MOV A,90H中,90H是特殊功能寄存器P1的直接地址形式;更常采用特殊功能寄存器的符号名称来表示,如指令:MOV A,P1中,P1是特殊功能寄存器的符号名称,也是符号地址,在指令中
14、符号“P1”与地址“90H”是等同的。3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.3 3.2.3 寄存器寻址寄存器寻址 寄存器寻址就是以寄存器的内容作为操作数。在指令的操作数位置上指定了寄存器就能得到操作数。【例3-3】如(RO)=60H,则执行MOV A,R0 指令后,(A)=?解:指令执行过程如图3-3,结果:(A)=60H。指令在ROM中的机器码为E8H,指令对应的机器码是:E8H=1110 1000B,二进制的后三位000就是隐含的R0寄存器的编码,如果是R7其编码为111。由于寄存器在CPU内部,所以采用寄存器寻址可以获得较高的运算速度。3.2 80C513.
15、2 80C51的寻址方式的寻址方式 n3.2.3 3.2.3 寄存器寻址寄存器寻址 3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.4 3.2.4 寄存器间接寻址寄存器间接寻址 以寄存器中的内容作为RAM地址,该地址中的内容才是操作数,这种寻址方式称为寄存器间接寻址。寄存器名称前加“”标志来表示寄存器间接寻址。【例3-4】(RO)=60H,(60H)=32H,则执行MOV A,R0 指令后,(A)=?,(RO)=?解:指令执行过程如图3-4 结果:(A)=32H,(RO)=60H。3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.4 3.2.4 寄存器间接
16、寻址寄存器间接寻址 以寄存器中的内容作为RAM地址,该地址中的内容才是操作数,这种寻址方式称为寄存器间接寻址。寄存器名称前加“”标志来表示寄存器间接寻址。【例3-4】(RO)=60H,(60H)=32H,则执行MOV A,R0 指令后,(A)=?,(RO)=?解:指令执行过程如图3-4 结果:(A)=32H,(RO)=60H。3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.4 3.2.4 寄存器间接寻址寄存器间接寻址 80C51系列单片机规定只能用寄存器R0、R1、DPTR作为间接寻址的寄存器。间接寻址可以访问的存储空间为内部RAM和外部RAM。(1)内部RAM的低128个
17、单元采用R0、R1作为间址寄存器,在指令中表现为R0、R1的形式;(2)外部RAM的寄存器间接寻址有两种形式:一是采用R0、R1作为间址寄存器,指令中表现为R0、R1的形式,可寻址外部RAM的低256个单元,即可访问地址范围为0000H00FFH的单元;二是采用16位的DPTR作为间址寄存器,指令中表现为DPTR的形式,可寻址外部RAM整个64 KB个地址空间,地址范围为0000HFFFFH的单元。3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.5 3.2.5 变址寻址变址寻址变址寻址是以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器(存放地址偏移量)并以两者内容相
18、加形成的16位地址作为操作数地址。变址寻址用于两种情况:(1)用于对ROM(包含内外ROM)的数据进行寻址 如:MOVC A,A+DPTR;A(A)+(DPTR)MOVC A,A+PC;A(A)+(PC)(2)用于跳转指令,如JMP A+DPTR。功能:将累加器A的内容与数据指针DPTR的内容相加形成指令跳转的目标地址,从而使程序转移到该地址运行。注意:变址寻址所找到的地址是ROM空间的地址,指令中表现为A+DPTR,A+PC的形式。3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.5 3.2.5 变址寻址变址寻址【例3-5】若(A)03H,(DPH)=20H,(DPL)=0
19、0H,即(DPTR)=2000H,ROM的(2003H)=66H。执行指令MOVC A,A+DPTR后,(A)=?解:指令执行过程如图3-5,结果:(A)=66H,(RO)=60H。该指令中累加器A的值和DPTR的值相加所得2003H为操作数所在ROM单元的地址,该地址中的数据66H才是要找的操作数,该指令将66H覆盖累加器A原来的值。3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.5 3.2.5 变址寻址变址寻址3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.6 3.2.6 相对寻址相对寻址相对寻址就是将程序计数器PC的当前值(正在执行指令的下一条指令
20、的首地址)与指令中给出的偏移量rel相加,其结果作为转移地址送入PC中。相对寻址只在相对转移指令中使用,指令中给出的操作数是相对地址偏移量rel,这种寻址方式通过修改PC的值,可实现程序的分支转移。rel是一个带符号的8位二进制数,编译后以补码形式存放于ROM中,取值范围是128+127,故rel给出了相对于PC当前值的跳转范围。3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.6 3.2.6 相对寻址相对寻址【例3-6】设指令SJMP 54H存放在ROM内以2000H起始的单元,求执行本指令后程序将跳转到何处执行?解:这是无条件相对转移指令,是双字节指令,指令代码为80H、
21、54H,其中80H是该指令的操作码,54H是偏移量。转移地址为2000H+02H+54H2056H。故指令执行后,PC的值变为2056H,程序的执行顺序发生了转移,指令执行过程如图3-6所示。3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.6 3.2.6 相对寻址相对寻址3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.7 3.2.7 位寻址位寻址80C51系列单片机有位处理功能,对位地址中的内容进行操作的寻址方式称为位寻址。相应的在指令系统中有一类位操作指令,它们采用位寻址方式,在指令的操作数位置上直接给出位地址。【例3-7】位地址为07H单元中的值为1
22、,CY=0,执行MOV C,07H指令后,CY=?解:指令的执行过程如图3-7所示。该指令的功能是把位地址07H中的值传送到位累加器CY中。80C51单片机内部RAM有两个区域可以位寻址:一个是字节地址为20H2FH单元的128 位另一个是字节地址能被8整除的特殊功能寄存器的相应位。3.2 80C513.2 80C51的寻址方式的寻址方式 n3.2.7 3.2.7 位寻址位寻址3.2 80C513.2 80C51的寻址方式的寻址方式 3.3 3.3 数据传送类指令(数据传送类指令(2929条)条)n3.3 3.3 数据传送类指令(数据传送类指令(2929条)条)3.3.1 内部RAM数据传送指
23、令 3.3.2 访问外部RAM的数据传送指令MOVX 3.3.3 读取ROM中常数表的查表指令MOVC3.3.4 数据交换指令 3.3.5 堆栈操作指令3.3 3.3 数据传送类指令(数据传送类指令(2929条)条)n 数据传送类指令是最常用、最基本的一类指令。数据传送类指令是最常用、最基本的一类指令。n数据传送类指令的一般功能是把源操作数传送到目的操作数,指数据传送类指令的一般功能是把源操作数传送到目的操作数,指令执行后,源操作数不变,目的操作数被源操作数所代替。令执行后,源操作数不变,目的操作数被源操作数所代替。这类指令主要用于数据的传送、保存及交换等场合。这类指令主要用于数据的传送、保存
24、及交换等场合。在在80C5180C51系列单片机的指令系统中,各类数据传送指令共有系列单片机的指令系统中,各类数据传送指令共有2929条。条。3.3 3.3 数据传送类指令(数据传送类指令(2929条)条)n3.3.1 3.3.1 内部内部RAMRAM数据传送指令数据传送指令 内部RAM的数据传送类指令共16条,包括累加器、寄存器、特殊功能寄存器、RAM单元之间的相互数据传送。1、以累加器A为目的操作数的数据传送指令 MOV A,#data ;Adata MOV A,direct ;A(direct)MOV A,Rn ;A(Rn)MOV A,Ri ;A(Ri)3.3 3.3 数据传送类指令(数
25、据传送类指令(2929条)条)n3.3.1 3.3.1 内部内部RAMRAM数据传送指令数据传送指令 这组指令的功能:将源操作数所指定的内容送入累加器A中。源操作数可以采用立即寻址、直接寻址、寄存器寻址和寄存器间接寻址4种寻址方式。80C51多数数据的处理都要经过累加器A完成,所以以累加器A为目的操作数的指令是指令系统中使用最为频繁的指令。3.3 3.3 数据传送类指令(数据传送类指令(2929条)条)n3.3.1 3.3.1 内部内部RAMRAM数据传送指令数据传送指令 【例3-8】若(RO)=20H,(20H)=66H,试分别求解每条指令执行后,(A)=?MOV A,#20H ;A20H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理与C51基础 80 C51 单片机 寻址 方式 指令系统 原理 基础 课件

限制150内