《(精品)AT89S52单片机寻址方式及指系统 (2).ppt》由会员分享,可在线阅读,更多相关《(精品)AT89S52单片机寻址方式及指系统 (2).ppt(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 学习情景二学习情景二 AT89S52AT89S52单片机单片机寻址方式及指令系统寻址方式及指令系统 第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 学习目标:学习目标:熟练掌握熟练掌握MCS-51单片机的寻址方式和指令单片机的寻址方式和指令系统系统能编写简单完整的程序能编写简单完整的程序掌握标志位掌握标志位技能目标:技能目标:能够对工作任务进行分析,找出相应算法,能够对工作任务进行分析,找出相应算法,绘制流程图。绘制流程图。能够根据流程图编写程序。能够根据流程图编写程序。会使用会使用
2、Keil C51 Vision2集成开发环境,观集成开发环境,观察与修改存储器。察与修改存储器。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 项目一项目一 片内存储器及特殊功能寄存器片内存储器及特殊功能寄存器 第一部分第一部分 项目要求项目要求 在在Keil C51 Vision2集成开发环境下,集成开发环境下,在编辑窗口编辑给定程序,观察片内在编辑窗口编辑给定程序,观察片内RAM工作工作寄存器区、内部寄存器区、内部RAM位寻址区、位寻址区、RAM间接与间接与直接寄存器区、内部直接寄存器区、内部RAM间接寻址区、内部间接寻址区、内部RAM特殊功能寄存器区、外部
3、特殊功能寄存器区、外部RAM区区(XRAM)的数据,并根据要求进行修改,说明的数据,并根据要求进行修改,说明每条指令的寻址方式。每条指令的寻址方式。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 一、一、AT89S52单片机寻址方式单片机寻址方式 寻址方式是指寻址方式是指CPUCPU寻找操作数或操作数寻找操作数或操作数地址的方法。具体来说寻址方式就是如何找地址的方法。具体来说寻址方式就是如何找到存放操作数的地址,把操作数提取出来的到存放操作数的地址,把操作数提取出来的方法,它是计算机
4、的重要性能指标之一,也方法,它是计算机的重要性能指标之一,也是汇编语言程序设计中最基本的内容之一。是汇编语言程序设计中最基本的内容之一。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 二、二、AT89S52AT89S52单片机指令寻址单片机指令寻址 存放指令代码的地址称指令地址。指令存放是在存放指令代码的地址称指令地址。指令存放是在程序存储器中,是按顺序存放的,执行时也是按程序存储器中,是按顺序存放的,执行时也是按指令地址顺序执行,除非是转移。指令地址顺序执行,除非是转移。存放数据的地址称操作数地址。数据的存放是任存放数据的地址称操作数地址。数据的存放是任意的,
5、无规律。意的,无规律。操作数的来源为:操作数的来源为:A A操作数在指令中操作数在指令中B B操作数在存储器中操作数在存储器中C C操作数在寄存器中操作数在寄存器中D D操作数在操作数在I/OI/O端口中端口中 第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 寻址方式:寻址方式:7 7种种立即寻址立即寻址直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 (一)立即寻址(一)立即寻址 是指操作数在指令操作数域直接给出是指操作数在
6、指令操作数域直接给出 例:例:例:例:MOV A,#25H ;A MOV A,#25H ;A 2525HH MOV DPTR MOV DPTR,#1856H#1856H;DPTRDPTR1856H1856H M0111010000100101操作码操作码立即数立即数00100101APCPC+1图图2.1 立即寻址(立即寻址(MOV A,#25H)PC+1PC操作码操作码M100100000001100001010110立即数高位立即数高位立即数低位立即数低位0001100001010110DPHDPL图图2.2 立即寻址(立即寻址(MOV DPTR,#1856H)第第4 4章章 AT89S5
7、2单片机寻址方式及指令系统单片机寻址方式及指令系统 (二)直接寻址(二)直接寻址是指操作数的地址直接在指令操作数域给出是指操作数的地址直接在指令操作数域给出 可访问可访问可访问可访问种地址空间种地址空间种地址空间种地址空间(1)(1)(1)(1)内部内部内部内部RAMRAMRAMRAM低低低低128128128128单元:单元:单元:单元:000000007FH7FH7FH7FH MOV A MOV A,3CH 3CH ;A(3CH)A(3CH)(2)(2)(2)(2)特殊功能寄存器特殊功能寄存器特殊功能寄存器特殊功能寄存器SFR,SFR,SFR,SFR,唯一方式唯一方式唯一方式唯一方式808
8、080800FF0FF0FF0FF MOV AMOV A,P1 P1 ;A(P1A(P1口口口口)MOV A MOV A,90H90H (3)211(3)211(3)211(3)211个位地址空间个位地址空间个位地址空间个位地址空间 MOV C MOV C,30H 30H ;Cy(30H)Cy(30H)MOV AMOV A,30H 30H ;A(30H)A(30H)第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 图图2.3 直接寻址(直接寻址(MOV A,3CH)第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 例:例:MOV A
9、,30H;机器码为;机器码为E530H 指指令令功功能能是是把把直直接接地地址址30H单单元元的的内内容容送累加器送累加器A,即,即(30H)(A)如图所示。如图所示。34H34H34H34H第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 例例:MOV DPTR,#1234h (DPH)=12H (DPL)=34H注意:注意:立即数前加立即数前加“#”号,以区别直接地址。号,以区别直接地址。例如:例如:MOV A,#30H;(A)30H MOV A,30H;(A)(30H)第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 (三)寄存
10、器寻址(三)寄存器寻址操作数存放在寄存器中操作数存放在寄存器中MOVMOV AA,R0R0MOVMOV R0R0,#01001111B,#01001111B 工作寄存器(工作寄存器(工作寄存器(工作寄存器(00H1FH)00H1FH)RS1 RS0 RS1 RS0 寄存器组寄存器组寄存器组寄存器组 片内片内片内片内RAMRAM地址地址地址地址 寄存器寄存器寄存器寄存器 0 0 0 0 第第第第0 0组组组组 00H00H07H R007H R0R7R7 0 1 0 1 第第第第1 1组组组组 08H08H0FH R00FH R0R7R7 1 0 1 0 第第第第2 2组组组组 10H10H17
11、H R017H R0R7R7 1 1 1 1 第第第第3 3组组组组 18H18H1FH R01FH R0R7R7 SETB RS0SETB RS0MOV MOV R3R3,#56H,#56H寄存器为寄存器为寄存器为寄存器为 R0R7R0R7,AA,B B,DPTRDPTR,CC第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 【例例2-6】MOV A,R1 ;A(R1)1111111111111111图图2.4 寄存器寻址(寄存器寻址(MOV A,R1)第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 例如:例如:例如:例如:MOV
12、 A MOV A,R3 ;R3 ;机器码为机器码为机器码为机器码为 0EBH 0EBH 指令功能是把当前指令功能是把当前指令功能是把当前指令功能是把当前R3R3中的操作数送累加器中的操作数送累加器中的操作数送累加器中的操作数送累加器A A。指令执行示意图如图所示。设(指令执行示意图如图所示。设(指令执行示意图如图所示。设(指令执行示意图如图所示。设(R3R3)=12H=12H第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 (四)寄存器间接寻址(四)寄存器间接寻址 是指操作数存放在以寄存器内容为地址的单元中。是指操作数存放在以寄存器内容为地址的单元中。是指操作数存
13、放在以寄存器内容为地址的单元中。是指操作数存放在以寄存器内容为地址的单元中。寄存器中存放的是操作数的地址,而操作数在存储器寄存器中存放的是操作数的地址,而操作数在存储器寄存器中存放的是操作数的地址,而操作数在存储器寄存器中存放的是操作数的地址,而操作数在存储器中,通过寄存器可间接得到。中,通过寄存器可间接得到。中,通过寄存器可间接得到。中,通过寄存器可间接得到。用符号用符号用符号用符号“”表示。表示。表示。表示。寄存器间接寻址可寻址范围如下:寄存器间接寻址可寻址范围如下:(1)内部内部RAM低低128单元,地址范围单元,地址范围00H7FH,用,用Ri(i=0,1)和和SP作为间址寄存器;作为
14、间址寄存器;(2)与与P2口配合使用,用口配合使用,用Ri指示低指示低8位地址,可寻址片位地址,可寻址片外数据存储器或外数据存储器或I/O口的口的64kB区域;区域;(3)DPTR间接寻址寄存器,可寻址片外程序存储器或间接寻址寄存器,可寻址片外程序存储器或数据存储器包括数据存储器包括I/O口的各自的口的各自的64kB区域。区域。可间接寻址的寄存器为可间接寻址的寄存器为可间接寻址的寄存器为可间接寻址的寄存器为R0R0,R1 R1,SPSP,DPTRDPTR第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 例如:例如:例如:例如:MOV A MOV A,R1;R1;机
15、器码机器码机器码机器码 E7HE7H 设(设(设(设(R1R1)=60H=60H,(60H60H)=50H=50H,执行结果执行结果执行结果执行结果 (A)=50H,A)=50H,该指令执行过程如图所示。该指令执行过程如图所示。该指令执行过程如图所示。该指令执行过程如图所示。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 (五)变址寻址(五)变址寻址基址寄存器变址寄存器的基址寄存器变址寄存器的基址寄存器变址寄存器的基址寄存器变址寄存器的间接寻址方式间接寻址方式DPTR/PC A MOVC A,A+DPTR (A)(DPTR)+(A)MOVC A,A+PC (A)
16、(PC)+(A)JMP A+DPTR (PC)=(A)+(DPTR)第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 MOVC A,A+DPTR;A(A)+(DPTR)指令功能为指令功能为DPTR中的内容与中的内容与A中的内容相加,中的内容相加,其和所指示的单元的数送入累加器其和所指示的单元的数送入累加器A,如图所示。,如图所示。图图2.6 变址寻址(变址寻址(MOVC A,A+DPTR)第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 (六)相对寻址(六)相对寻址 是是以以程程序序计计数数器器PC的的当当前前值值为为基基地地址址,加
17、加上上指令中给出的偏移量指令中给出的偏移量rel作为转移目的地址。作为转移目的地址。转移目的地址转移目的地址=下一条指令地址下一条指令地址+rel 【例例2-9】JC 80H 01000000第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 JC rel;4085H 设设rel=85H,Cy=1目标地址目标地址目标地址目标地址PCPC当前当前当前当前值值值值第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 (七)位寻址(七)位寻址 bit 位位位位寻寻寻寻址址址址是是是是指指指指对对对对一一一一些些些些内内内内部部部部RAMRAM和和
18、和和特特特特殊殊殊殊功功功功能能能能寄寄寄寄存存存存器器器器进行位操作时的寻址方式。进行位操作时的寻址方式。进行位操作时的寻址方式。进行位操作时的寻址方式。位寻址范围:位寻址范围:位寻址范围:位寻址范围:(1 1)内内内内部部部部RAMRAM的的的的位位位位寻寻寻寻址址址址区区区区,共共共共1616个个个个单单单单元元元元的的的的128128位位位位,单单单单元元元元地地地地址址址址为为为为20H20H2FH2FH,位位位位地地地地址址址址为为为为00H00H7FH7FH。可可可可用用用用直接位地址或字节地址加位的直接位地址或字节地址加位的直接位地址或字节地址加位的直接位地址或字节地址加位的表
19、示方法。表示方法。表示方法。表示方法。例如:例如:MOV C,7AH或或 MOV C,2FH.2第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 (2)(2)特殊功能寄存器特殊功能寄存器特殊功能寄存器特殊功能寄存器SFRSFR可供位寻址的专用寄存器共可供位寻址的专用寄存器共可供位寻址的专用寄存器共可供位寻址的专用寄存器共1111个,实个,实个,实个,实有位地址位有位地址位有位地址位有位地址位8383位。位地址有位。位地址有位。位地址有位。位地址有4 4种表达方式种表达方式种表达方式种表达方式 。以对程序状态寄存器以对程序状态寄存器以对程序状态寄存器以对程序状态寄存
20、器PSWPSW辅助进位位辅助进位位辅助进位位辅助进位位ACAC进行操作为例:进行操作为例:进行操作为例:进行操作为例:PSW CyPSW Cy AC AC F0 RS1 RS0 OV P D0HF0 RS1 RS0 OV P D0H D7H D6H D0H D7H D6H D0H1 1)直接使用位地址)直接使用位地址)直接使用位地址)直接使用位地址 3 3)单元地址加位的表示法)单元地址加位的表示法)单元地址加位的表示法)单元地址加位的表示法 MOV C MOV C,0D6H 0D6H MOV C MOV C,0D0H.60D0H.62 2)位名称表示法)位名称表示法)位名称表示法)位名称表示
21、法 4 4)专用寄存器符号加位的表示法)专用寄存器符号加位的表示法)专用寄存器符号加位的表示法)专用寄存器符号加位的表示法 MOV C MOV C,ACAC MOV C MOV C,PSW.6PSW.6 第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 寻址方式寻址方式寻址方式寻址方式寻址空间寻址空间寻址空间寻址空间寄存器寻址寄存器寻址寄存器寻址寄存器寻址R0R7R0R7(0 0、1 1、2 2、3 3组)组)组)组)A A、BB、CYCY、DPTR DPTR 直接寻址直接寻址直接寻址直接寻址内部内部内部内部RAM 00H7FHRAM 00H7FH特殊功能寄存器特
22、殊功能寄存器特殊功能寄存器特殊功能寄存器SFRSFR 80H0FFH 80H0FFH内部内部内部内部RAMRAM中中中中20H2FH20H2FH单元的单元的单元的单元的128128个位地址个位地址个位地址个位地址SFRSFR中中中中8383个有效个有效个有效个有效位地址位地址位地址位地址 80H0FFH80H0FFH寄存器寄存器寄存器寄存器间接寻址间接寻址间接寻址间接寻址内部内部内部内部RAM 00H7FH (R0 RAM 00H7FH (R0、R1R1、SP)SP)外部外部外部外部RAMRAM或外部或外部或外部或外部I/OI/O口口口口 0000H0FFFFH0000H0FFFFH(R0(R
23、0、R1R1、DPTR)DPTR)立即寻址立即寻址立即寻址立即寻址程序存储器程序存储器程序存储器程序存储器基址基址基址基址+变址变址变址变址寄间寻址寄间寻址寄间寻址寄间寻址程序存储器(程序存储器(程序存储器(程序存储器(A+DPTRA+DPTR、A+PC)A+PC)寻址方式与寻址空间寻址方式与寻址空间寻址方式与寻址空间寻址方式与寻址空间第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 寻址方式与寻址空间寻址方式与寻址空间寻址方式与寻址空间寻址方式与寻址空间(续)续)续)续)寻址方式寻址方式寻址方式寻址方式寻址空间寻址空间寻址空间寻址空间相对寻址相对寻址相对寻址相对
24、寻址程序存储器程序存储器程序存储器程序存储器256B256B范围范围范围范围位寻址位寻址位寻址位寻址内部内部内部内部RAM RAM 和和和和SFRSFR的位地址的位地址的位地址的位地址第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 三、三、AT89S52 单片机标志位单片机标志位PSWCyACF0RS1RS0OVP位地址位地址D7HD6HD5HD4HD3HD2HD1H D0H第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 四、四、AT89S52单片机指令系统简介单片机指令系统简介 80C51指令系统有指令系统有42种助记符,代表了
25、种助记符,代表了33种功能,种功能,指令助记符与各种可能的寻址方式相结合,共构指令助记符与各种可能的寻址方式相结合,共构成成111条指令。条指令。指令分类:指令分类:数据传送类指令数据传送类指令(28)传送类指令举例传送类指令举例传送类指令举例传送类指令举例算术运算类指令算术运算类指令(24)逻辑运算类指令逻辑运算类指令(25)控制转移类指令控制转移类指令(17)布尔处理类指令布尔处理类指令(17)第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 指令是指单片机执行某种操作的命令。指令是指单片机执行某种操作的命令。指令系统(或指令集)是指单片机能够识别指令系统(或
26、指令集)是指单片机能够识别和执行的全部指令。和执行的全部指令。用汇编语言编写的程序用汇编语言编写的程序称为源程序。为完成某项任务,人们按要求称为源程序。为完成某项任务,人们按要求编排的指令操作序列称为程序。编排的指令操作序列称为程序。【例2.11】要做“10+20”的加法,可写成:汇编语言程序 机器语言程序MOV A,#0AH 74 0AHADD A,#14H 24 14H(一)指令及程序的概念(一)指令及程序的概念第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 1.汇编语言指令格式汇编语言指令格式 标号标号:操作码:操作码 目的操作数目的操作数,源操作数源操作
27、数;注释注释例如:例如:Loop:ADD A,R0 ;A+(R0)(A)2机器语言指令格式机器语言指令格式(二)指令格式(二)指令格式7 70 0操作码操作码7 70 07 70 0数据或寻址方式数据或寻址方式7 70 0数据或寻址方式数据或寻址方式7 70 0数据或寻址方式数据或寻址方式7 70 0单字节指令:单字节指令:双字节指令:双字节指令:三字节指令:三字节指令:操作码操作码操作码操作码操作码操作码第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 (三)指令系统中使用的常用符号(三)指令系统中使用的常用符号(三)指令系统中使用的常用符号(三)指令系统中使用
28、的常用符号RnRn:当前寄存器工作区中的寄存器,其中,当前寄存器工作区中的寄存器,其中,当前寄存器工作区中的寄存器,其中,当前寄存器工作区中的寄存器,其中,n=0n=07 7;directdirect:内部数据存储器地址,可指定一个内部内部数据存储器地址,可指定一个内部内部数据存储器地址,可指定一个内部内部数据存储器地址,可指定一个内部RAMRAM单元单元单元单元(0(0127)127)或一个专用寄存器或一个专用寄存器或一个专用寄存器或一个专用寄存器(128(128255)255);RiRi:通过通过通过通过R1R1或或或或R0R0间接寻址,指定数据存储器间接寻址,指定数据存储器间接寻址,指定
29、数据存储器间接寻址,指定数据存储器RAMRAM中的一个中的一个中的一个中的一个单元单元单元单元(0(0255)255);#data#data:在指令中指明在指令中指明在指令中指明在指令中指明8 8位常数;位常数;位常数;位常数;#datal6#datal6:在指令中指明在指令中指明在指令中指明在指令中指明1616位常数;位常数;位常数;位常数;addrlladdrll:1111位目的地址,用在位目的地址,用在位目的地址,用在位目的地址,用在ACALLACALL或或或或AJMPAJMP指令中,表示调指令中,表示调指令中,表示调指令中,表示调用或转移地址,寻址范围为用或转移地址,寻址范围为用或转移
30、地址,寻址范围为用或转移地址,寻址范围为2KB2KB;addrl6addrl6:1616位目的地址,用在位目的地址,用在位目的地址,用在位目的地址,用在LCALLLCALL或或或或LJMPLJMP指令中,表示调指令中,表示调指令中,表示调指令中,表示调用或转换地址,寻址范围为用或转换地址,寻址范围为用或转换地址,寻址范围为用或转换地址,寻址范围为64KB64KB;relrel:8 8位偏移量,用补码表示,用在位偏移量,用补码表示,用在位偏移量,用补码表示,用在位偏移量,用补码表示,用在SJMPSJMP等转移指令中,寻址等转移指令中,寻址等转移指令中,寻址等转移指令中,寻址范围为范围为范围为范围
31、为128128127127;bitbit:表示位寻址空间中的位地址,表示位寻址空间中的位地址,表示位寻址空间中的位地址,表示位寻址空间中的位地址,8 8位,寻址范围为位,寻址范围为位,寻址范围为位,寻址范围为0 0FFHFFH。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 (四)(四)AT89S52AT89S52指令系统助记符指令系统助记符 指指令令系系统统有有42种种助助记记符符,代代表表了了33种种功功能能,指指令令助助记记符符与与各各种种可可能能的的寻寻址址方方式式相相结结合合,共共构构成成111条条指指令令。按按指指令令的的功功能能可可分分为为五五大大
32、类类。为为了了便便于于理理解解,加加强强记记忆忆,给给出出每个助记符的解释。每个助记符的解释。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 1.数据传送类指令(数据传送类指令(7种助记符,种助记符,28条指令)条指令)MOV:对内部数据寄存器:对内部数据寄存器RAM和特殊功能寄存和特殊功能寄存器器SFR的数据进行传送。的数据进行传送。MOVC:读程序存储器数据表格的数据传送。:读程序存储器数据表格的数据传送。MOVX:对外部:对外部RAM的数据传送。的数据传送。XCH:字节交换。:字节交换。XCHD:低半字节交换。:低半字节交换。PUSH:入栈。:入栈。POP
33、:出栈。:出栈。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 【例例例例1 1】MOV A MOV A,40H 40H ;A(40H)A(40H)MOV A MOV A,#40H#40H ;A40HA40H 注意注意注意注意 40H40H和和和和#40H#40H的区别的区别的区别的区别【例【例【例【例2 2】MOV A MOV A,R1 R1 ;A(R1)A(R1)MOV A MOV A,R1 R1 ;A(R1)A(R1)注意注意注意注意 R1R1和和和和R1R1的区别的区别的区别的区别【例例3】MOV 90H,#40H ;P140H MOV P1,#40H
34、;PI40H MOV R0,#90H ;R090H MOV R0,#40H ;(90H)40H 注意:注意:(1)目的操作数不能采用立即寻址。目的操作数不能采用立即寻址。(2)Ri中的中的i范围为范围为0和和1。(3)Rn中的中的n的范围为的范围为07。(4)每条指令中最多只能有每条指令中最多只能有1个个Rn或或Ri。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 【例【例【例【例4 4】以下指令都是错误的。以下指令都是错误的。以下指令都是错误的。以下指令都是错误的。MOV#30HMOV#30H,40H40H MOV A MOV A,R2R2 MOV R1 MO
35、V R1,R3R3 MOV R1 MOV R1,R0 R0 MOV R1 MOV R1,R2 R2 MOV R0 MOV R0,R1R1【例例例例5 5】MOV A MOV A,60H 60H ;A(60H)A(60H),目的操作数为寄存器寻址目的操作数为寄存器寻址目的操作数为寄存器寻址目的操作数为寄存器寻址 MOV 0E0HMOV 0E0H,60H 60H ;A(60H)A(60H),目的操作数为直接寻址目的操作数为直接寻址目的操作数为直接寻址目的操作数为直接寻址 MOV 09HMOV 09H,#40H#40H ;09H40H09H40H,目的操作数为直接寻址目的操作数为直接寻址目的操作数为
36、直接寻址目的操作数为直接寻址 MOV R1MOV R1,#40H#40H ;R140HR140H,目的操作数为寄存器寻址目的操作数为寄存器寻址目的操作数为寄存器寻址目的操作数为寄存器寻址第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 【例例6】分析程序的执行结果。分析程序的执行结果。设内部设内部RAM中中30H单元的内容为单元的内容为80H,试分析,试分析执行下面程序后各有关单元的内容。执行下面程序后各有关单元的内容。MOV 60H,#30H ;60H30H MOV R0,#60H ;R060H MOV A,R0 ;A30H MOV R1,A ;R130H MO
37、V 40H,R1 ;40H80H 程序执行结果为:程序执行结果为:(A)=30H,(R0)=60H,(R1)=30H,(60H)=30H,(40H)=80H,(30H)=80H第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 【例例7】将内部将内部RAM 80H单元的内容送单元的内容送入外部入外部RAM 70H单元。程序如下:单元。程序如下:MOV R0,#80H MOV A,R0 MOV R0,#70H MOVX R0,A此例中访问内部此例中访问内部RAM和访问外部和访问外部RAM均均通过通过R0间接寻址,不同的是访问内部间接寻址,不同的是访问内部RAM用操作码
38、用操作码MOV,访问外部,访问外部RAM使用操作使用操作码码MOVX,二者不能混淆。,二者不能混淆。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 PUSH direct;sp PUSH direct;sp (sp)+1,(sp)(sp)+1,(sp)(direct)(direct)POP direct;POP direct;direct direct (sp),(sp)(sp),(sp)(sp)-1(sp)-1堆栈操作指令堆栈操作指令1 1、堆栈、堆栈、堆栈、堆栈 一种数据结构,是一种数据结构,是一种数据结构,是一种数据结构,是“先进后出先进后出先进后出先进后
39、出”线性表。线性表。线性表。线性表。2 2、堆栈操作:、堆栈操作:、堆栈操作:、堆栈操作:压入压入压入压入 PUSH PUSH,弹出弹出弹出弹出 POP POP 3 3、堆栈区:、堆栈区:、堆栈区:、堆栈区:占片内占片内占片内占片内RAM RAM 中连续的存储单元复位后,系统自中连续的存储单元复位后,系统自中连续的存储单元复位后,系统自中连续的存储单元复位后,系统自动将动将动将动将SPSP指针指向指针指向指针指向指针指向07H07H 用户可将堆栈区设在用户可将堆栈区设在用户可将堆栈区设在用户可将堆栈区设在30H7FH30H7FH数据缓冲区内,数据缓冲区内,数据缓冲区内,数据缓冲区内,MOV S
40、P,#5FHMOV SP,#5FH第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 堆栈有两种类型:堆栈有两种类型:堆栈有两种类型:堆栈有两种类型:向向向向上上上上生长型和向生长型和向生长型和向生长型和向下下下下生长型,如图所生长型,如图所生长型,如图所生长型,如图所示。示。示。示。向上向上向上向上生长型堆栈,栈底在生长型堆栈,栈底在生长型堆栈,栈底在生长型堆栈,栈底在低地址低地址低地址低地址单元。随着数单元。随着数单元。随着数单元。随着数据进栈,地址递增,据进栈,地址递增,据进栈,地址递增,据进栈,地址递增,SP SP 的内容越来越大,指针上移;的内容越来越大,
41、指针上移;的内容越来越大,指针上移;的内容越来越大,指针上移;反之,随着数据的出栈,地址递减,反之,随着数据的出栈,地址递减,反之,随着数据的出栈,地址递减,反之,随着数据的出栈,地址递减,SPSP的内容越来越的内容越来越的内容越来越的内容越来越小,指针下移。如小,指针下移。如小,指针下移。如小,指针下移。如(b)(b)图所示。图所示。图所示。图所示。栈顶栈顶栈顶栈顶栈顶栈顶栈顶栈顶第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 2.2.算术运算类指令算术运算类指令(8 8种助记符,种助记符,2424条指令)条指令)ADD:加法。:加法。ADDC:带进位加法。:
42、带进位加法。SUBB:带借位减法。:带借位减法。DA:十进制调整。:十进制调整。INC:加:加1。DEC:减:减1。MUL:乘法。:乘法。DIV:除法。:除法。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 【例例例例8 8】设设设设20H20H21H21H单元存放一个单元存放一个单元存放一个单元存放一个1616位二进制数位二进制数位二进制数位二进制数X1(X1(高高高高8 8位存于位存于位存于位存于21H21H单元单元单元单元),30H30H31H31H单元存放另一个单元存放另一个单元存放另一个单元存放另一个1616位二进制数位二进制数位二进制数位二进制数X2
43、(X2(高高高高8 8位存于位存于位存于位存于31H31H单元单元单元单元)。求。求。求。求X1+X2X1+X2,和存于,和存于,和存于,和存于20H20H21H21H,设两数之和不超过,设两数之和不超过,设两数之和不超过,设两数之和不超过1616位。位。位。位。解:程序如下:解:程序如下:解:程序如下:解:程序如下:ORG 2000HORG 2000H MOV R0 MOV R0,#20H#20H MOV R1 MOV R1,#30H#30H MOV A,R0 MOV A,R0 ;取被加数低;取被加数低;取被加数低;取被加数低8 8位位位位 ADD A,R1 ADD A,R1 ;求和的低;求
44、和的低;求和的低;求和的低8 8位位位位 MOV R0MOV R0,A A ;存和的低;存和的低;存和的低;存和的低8 8位位位位 INC R0 INC R0 ;指向被加数高;指向被加数高;指向被加数高;指向被加数高8 8位位位位 INC R1 INC R1 ;指向加数高;指向加数高;指向加数高;指向加数高8 8位位位位 MOV A,R0 MOV A,R0 ;取被加数高;取被加数高;取被加数高;取被加数高8 8位位位位 ADDC A,R1 ADDC A,R1 ;求和的高;求和的高;求和的高;求和的高8 8位位位位 MOV R0MOV R0,A A ;存和的高;存和的高;存和的高;存和的高8 8
45、位位位位 SJMP$SJMP$;停机;停机;停机;停机 ENDEND 运算结果高运算结果高运算结果高运算结果高8 8位存于位存于位存于位存于21H21H单元,低单元,低单元,低单元,低8 8位存于位存于位存于位存于20H20H单元。单元。单元。单元。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 【例例9】试分析执行以下程序后,各有关单试分析执行以下程序后,各有关单元的结果。元的结果。解:程序如下:解:程序如下:MOV R1,#7FH MOV 7EH,#00H MOV 7FH,#40H DEC R1 DEC R1 DEC R1 执行结果执行结果:(R1)=7EH
46、 (7EH)=0FFH (7FH)=3FH第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 十进制调整指令十进制调整指令 DA A;调整累加器内容为;调整累加器内容为BCD码码 这条指令跟在这条指令跟在ADD或或ADDC指令后,将相指令后,将相加后存放在累加器中的结果进行十进制调整,加后存放在累加器中的结果进行十进制调整,完成十进制加法运算功能。完成十进制加法运算功能。用用BCD码表示的十进制数在进行相加时,码表示的十进制数在进行相加时,应该是逢十进一,但应该是逢十进一,但AT89S52指令系统中没指令系统中没有逢十进一的指令,只有满十六进位的指令。有逢十进一的指
47、令,只有满十六进位的指令。所以用所以用ADD和和ADDC做加法后,要跟一个做加法后,要跟一个DA A指令进行十进制调整。指令进行十进制调整。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 DA A DA A ;若;若;若;若AC=1AC=1或或或或(A)(A)3 30 099,则,则,则,则A(A)+06HA(A)+06H ;若;若;若;若Cy=1Cy=1或或或或(A)(A)7 74 499,则,则,则,则A(A)A(A)十十十十60H60H调整原则:调整原则:调整原则:调整原则:形式上非形式上非形式上非形式上非BCDBCD码码码码 需要加需要加需要加需要加 0
48、6H06H、60H60H、66H66H调整调整调整调整形式上是形式上是形式上是形式上是BCDBCD码时码时码时码时:CY AC :CY AC 调整原则调整原则调整原则调整原则 0 0 0 0 不调整不调整不调整不调整 0 1 +06H0 1 +06H 1 0 +60H 1 0 +60H 1 1 +66H 1 1 +66H第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 【例例例例1010】编写程序完成编写程序完成编写程序完成编写程序完成78+9378+93的的的的BCDBCD码加法程序,码加法程序,码加法程序,码加法程序,并对调整过程进行分析。并对调整过程进行分析
49、。并对调整过程进行分析。并对调整过程进行分析。解:相应解:相应解:相应解:相应BCDBCD码加法程序为:码加法程序为:码加法程序为:码加法程序为:ORG 3000HORG 3000H MOV A MOV A,#78H#78H ;(A)78H(A)78H ADD A ADD A,#93H#93H ;(A)78H+93H=0BH(A)78H+93H=0BH DA A DA A SJMP$SJMP$END END 执行结果:执行结果:执行结果:执行结果:(A)=71H (A)=71H ,考虑进位标志,考虑进位标志,考虑进位标志,考虑进位标志(Cy)=1(Cy)=1,操作结果为操作结果为操作结果为操作
50、结果为171171。第第4 4章章 AT89S52单片机寻址方式及指令系统单片机寻址方式及指令系统 例例11:已知第一个:已知第一个BCD码码1234存放在存放在30H和和31H单元,其中(单元,其中(30H)=34H,(31H)=12H;第二个第二个BCD码码5678存放在存放在40H和和41H单元,单元,其中(其中(40H)=78H,(,(41H)=56H,求两数之和,结果存放在求两数之和,结果存放在50H、51H单元中。单元中。分析:分析:1 2 3 4 +5 6 7 8 6 9 1 2 (51H)=69H,(,(50H)=12H 第第4 4章章 AT89S52单片机寻址方式及指令系统单