




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
51单片机的寻址方式寻址方法:指定操作数所在单元的方法。在我们研究的8051单片机中,有7种寻址方式,我们将逐一分析。一、即时寻址前缀为“#”MOV甲,20H在这种寻址模式下,指令大多是双字节的。立即是存储在程序存储器中的常数,换句话说,操作数(立即)包含在指令字节中。例如:MOV机场,3AH该指令的指令代码为74H和3AH,是双字节指令。该指令的功能是将立即数3AH发送到累加器a中。MOVDPTR,#8200H,正如我们以前在研究单片机的特殊寄存器时所了解到的,DPTR是一个16位寄存器,它由两个8位寄存器DPH和DPL组成。该指令的含义是将立即数的高8位(即82H)发送到DPH寄存器,将立即数的低8位(即00H)发送到DPL寄存器。第二,直接寻址操作数的地址直接在指令中给出。MOV,30H该指令中的操作数位于30H单元,即30H是操作数的地址,而不是操作数。DPH MOV 30H在80C51单片机中,直接地址只能用来表示内部数据存储器、位地址空间和特殊功能寄存器,具体来说:1.内部数据存储器内存低128个单位。指令以直接单元地址的形式给出。我们知道128单元的地址是00H-7FH。在指令中,这句话直接以单元地址的形式给出,这意味着给出从0到127的128位中的任何一位,例如,0位以00H单元地址的形式给出,1位以01H单元地址的形式给出,127位以7FH的形式给出。2.位寻址区。20H-2FH地址单元。3.特殊功能寄存器。除了单元地址之外,特殊寄存器还可以以寄存器符号的形式给出。例如,我们分析了下面的指令MOV IE,#85H,我们已经知道中断允许寄存器IE的地址是80H,所以这个指令也可以用MOV 80H,#85H的形式来表示。直接寻址是访问特殊功能寄存器的唯一方法!让我们分析以下说明:MOV 65H,A;的内容被发送到内部随机存取存储器的65H单元地址。MOV甲,直接;将直接地址单元的内容发送到MOV直接,直接;将直接地址单元的内容发送到直接地址单元MOV工业大学,# 85H将立即数85H发送到中断使能寄存器IE如我们之前所了解的,在数据之前添加“#”以指示后面的数字是立即数(例如#85H意味着85H是立即数),并且在数据之前不添加“#”以指示后面的是地址地址(例如,指令a的MOV 65H、65H是单位地址)。3.寄存器寻址操作数存储在工作寄存器r0-r7或寄存器b中。R2 MOV寄存器寻址的地址范围为:1和4个工作寄存器组总共有32个通用寄存器,但指令中只能使用当前寄存器组(工作寄存器组的选择由程序状态字PSW中的RS1和RS0决定,这一点我们在之前的专用寄存器研究中已经知道)。因此,通常需要在使用前通过设置PSW中RS1和RS0位的状态来选择当前的工作寄存器组。2.一些特殊的寄存器。例如,累加器a、通用寄存器b、地址寄存器DPTR和进位位CY。寄存器寻址意味着操作数在寄存器中,因此可以通过指定寄存器名来获得操作数。例如,指令MOV A、R0意味着将寄存器R0的内容传送到累加器A,并且操作数在R0中。INC R3意味着将寄存器R3的内容加1。从前面的研究中,我们应该理解寄存器寻址模式实际上是读/写由PSW程序状态字决定的工作寄存器组的R0-R7。4、寄存器间接寻址指令中寄存器的内容用作存储操作数的地址,前缀“”用在指令中的间接地址寄存器之前。寄存器间接寻址意味着操作数的地址存储在寄存器中,即操作数是通过寄存器间接获得的,因此称为寄存器间接寻址。A:MCS-51单片机规定工作寄存器的R0和R1为间接寻址寄存器。256个单元用于寻址内部或外部数据存储。为什么是256个单位?我们知道R0或R1是一个8位寄存器,所以它的寻址空间是2的8次方=256。示例:MOV R0,# 30h将值30H载入R0MOV甲, R0内部随机存取存储器地址30H中的值被放入累加器AMOVX A, R0外部随机存取存储器地址30H中的值被放入累加器a想想看,如果用DPTR作为地址寄存器,它的地址范围是多少?DPTR是一个16位寄存器,因此它的寻址范围是2的16次方=65536=64K。由于使用DPTR作为地址间寄存器的地址空间是64K,所以在访问片外数据存储器时,我们通常使用DPTR作为地址间寄存器。示例:MOVDPTR,# 1234h将DPTR值设置为1234H(16位)“摩凡陀,”DPTR;将外部随机存取存储器或输入/输出地址1234H中的值放入累加器aC:在执行推入和弹出指令时,使用堆栈指针SP作为寄存器间接寻址。例如:Push30h内部随机存取存储器地址30H中的值被放置在堆栈区域中堆栈区域由SP寄存器指定。如果在执行上述命令之前,存储处理器为60H,则在执行该命令之后,内部内存地址30H中的值将被放入内存的61H中。用于寄存器间接寻址的主要寄存器是什么?我们上面提到了四个,R0,R1,DPTR,标准普尔寄存器间接寻址范围概述:A.内部内存低128个单位。对于内部随机存取存储器的较低128个单元的间接寻址,R0或r 1应用作地址间寄存器,其一般形式为Ri(i=0或1)。B.外部内存64KB。对于64 kb外部ram的间接寻址,DPTR应以DPTR的形式用作地址间地址寄存器。例如MOVX。其功能是将DPTR指定的外部随机存取存储器单元的内容发送到累加器A外部随机存取存储器的低256个单元是一个特殊的寻址区域,除了DPTR之外,它可以由R0或R1寻址。例如MOVX A. r0该指令意味着由R0指定的外部随机存取存储器单元的内容被发送到累加器A堆栈操作指令(PUSH和POP)也应算作寄存器的间接寻址,即使用堆栈指针SP作为地址间寄存器的间接寻址。寄存器间接寻址模式不能访问特殊功能寄存器!寄存器间接寻址也必须以寄存器符号的形式来表达。为了区分寄存器寻址和寄存器间接寻址,在寄存器间接寻址模式下,寄存器的名称以“”为前缀。5、基址寄存器加上索引寄存器的索引地址MOV阿DPTR操作数地址=可变地址基地址基址寄存器DPTR或个人计算机;索引寄存器A这种寻址方法通常用于访问程序内存和查找表。这种寻址方法使用程序计数器PC或DPTR作为基本寄存器,累加器A作为索引寄存器。在索引寻址期间,两者的内容相加,结果作为操作数的地址。这种方法通常用于访问程序存储器只读存储器中的数据表,即查表操作。索引寻址只能读取程序存储器中的值而不能写入,也就是说,索引寻址只能寻址程序存储器,或者说,它是一种针对程序存储器的特殊寻址方法。例如:MOVCA . DPTR该指令的功能是将DPTR和A的内容相加,然后将获得的程序存储器地址单元的内容发送给A。如果在该指令被执行之前A=54H并且DPTR=3F21H,则由该指令的索引寻址形成的操作数地址是54H 3F21H=3F75H。如果3F75H单元中的内容是7FH,在执行该指令后,累加器a中的内容是7FH。索引寻址只有三条指令,如下所示:JMP DPTRMOVC阿DPTRMOVCA,一台电脑第一指令JMP DPTR这是一个无条件的分支指令,这意味着DPTR加累加器A为16位地址。为了执行JMP,程序将分支到DPTR指定的地址。第二条和第三条指令MOVC指令DPTR和MOVC指令个人电脑指令这两条指令通常用于表查找操作。它们的功能完全一样,但在使用上有一些不同。现在详细描述如下:我们知道个人电脑是一个程序指针,有16位。DPTR是一个16位数据指针寄存器,其地址范围应为64K。当我们学习特殊函数寄存器时,我们已经知道程序计数器PC总是跟踪程序的执行。换句话说,电脑的价值会随着程序的执行而自动改变。我们不能随便给电脑赋值。虽然DPTR是一个数据指针,但我们可以为空的数据指针DPTR赋值。让我们来看看指令MOVC A . 一个个人计算机这个指令意味着把个人计算机的值和累加器A的值相加作为一个地址,而个人计算机是固定的,累加器A是一个8位寄存器,它的地址范围是256个地址单位。在这一点上,我们应该理解MOVC指令的地址范围在当前指令下只有256个地址单元。在我们的实际应用中,可能会出现问题。如果我们需要查询的数据表在256个地址单位内,我们可以使用MOVC公司的一台电脑来执行查表操作。如果有超过256个单元,我们不能使用这个指令来执行表查找操作。刚才我们已经说过,DPTR是一个数据指针,我们可以分配给它。通过分配操作。我们可以使MOVC的地址范围达到64K。DPTR。这是这两个指令在实际应用中应该注意的。索引寻址方式是MCS-51单片机独有的。6.比特寻址80C51单片机具有对数据位进行操作的位处理功能,因此有相应的位寻址模式。所谓的位寻址是指内部随机存取存储器或特殊功能寄存器SFR中可以进行位寻址的位直接置1或复位为0。位寻址的范围,即哪些部分可以位寻址:答:当我们研究51单片机的存储结构时,我们已经知道在128个内存单元中有一个称为位寻址区的区域,它是单片机的内部数据存储器。它的单元地址是20H-2FH。有16个单元,一个单元是8位,所以位寻址区有128位。所有128位都有一个位地址,位地址的名称是00H-7FH。这里有一个更麻烦的问题,需要清楚地理解。我们之前研究过00H和01H。7FH等等,都代表一个字节(或单元地址),在这里,所有这些数据都成为位地址。我们如何区分指令或程序中的单位地址和位地址?这个问题也是我们目前正在研究的位寻址的一个重要问题。事实上,我们都有相应的指令形式来区分这些数据是位地址还是单元地址。这个问题将在后面的教学系统研究中讨论。b、寻址特殊寄存器位。这里应该注意的是,并不是所有的特殊寄存器都是位可寻址的。请回顾我们之前关于特殊寄存器的文章。一般来说,地址单位可被8整除的特殊寄存器通常可以被位寻址,但当然不是所有的寄存器在应用中都应该被注意到。(稍后详细描述)7.相对寻址指令中给出的地址偏移量被加到指令所在单元的地址(计算机内容)上,以获得存储真正有效操作数的地址。以“李同学20岁,张比大3岁”为例。JC 60H让(电脑)=2000小时,然后当C=1时,传输目的地址=(个人电脑)2 60H-特殊寄存器的位寻址表示;接下来,我们将用程序状态字PSW来描述它。D7D6D5D4D3D2D1D0CY交流电寡霉素敏感比较因子RS1RS0OVP1.直接用位地址表示:看表,PSW的第五位地址是D5,所以可以表示为D5HMOV C,D5H2.位名表示:表示位的名称。例如,PSW的第5位是F0,因此可以表示为F0MOV C,F03.对单元(字节)地址的添加表示:D0H单元位5,表示DOH.5MOV C,D0H.54.特殊寄存器符号加位表示:例如PSW.5MOV C,PSW.5这四种方法实现的功能是相同的,但是它们的表达方式不同。示例:1.在下面的指令中解释用于源操作数的寻址方法。MOV R5、R7答:寄存器寻址方法MOV A,55H直接寻址方法MOV甲,55H号直接选址JMP DPTR索引寻址模式MOV 30H,C位寻址MOV阿,R0间接寻址MOVX A,R0间接寻址纠错测试请判断下列MCS-51单片机指令的书写格式是否有错误,如果有,请说明错误原因。MOV R0,R3答:R2 R7不能用于地址寄存器。MOVCDPTR在索引寻址模式下,不能在地址寄存器中使用R0,只能使用A。R1,地址R0运算指令中的目标操作数必须是累加器A,而不是R0。MUL A R0乘法指令中的乘法器应该在B寄存器中,即乘法指令只能使用AB寄存器组合。单片机指令系统和汇编语言编程。1.8051单片机指令系统的特点是什么?解决方案:8051指令系统由111条指令组成。如果按字节数分类,有49条单字节指令、46条双字节指令和16条三字节指令,其中单字节指令为主要指令。按指令执行时间分类,有64条单周期指令、45条双周期指令和2条四周期指令,其中单周期指令为主要指令。8051指令系统具有以下特点:(1)存储效率高,执行速度快。它可以将数据从直接地址传输到直接地址。它可以将并行输入/输出端口的内容传送到内部随机存取存储器单元,而无需经过累加器A或工作寄存器Rn。这可以大大提高传输速度,缓解蓄电池A的瓶颈效应.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福州地铁考试题库及答案
- 森林脑炎知识培训课件
- 森林消防冬季防火知识培训
- 编外招聘护士考试试题题库及答案
- 2025年物流经理职位招聘面试预测题及解析
- 2025年机关事务用车调度员招聘考试要点解析
- 桥梁建造知识培训教育课件
- 2025年系统集成项目管理师中级面试模拟题
- 2025年监理工程师考试《案例分析(交通)》真题及答案解析
- 桐城知识产权培训课件
- 第2章 动车组检修工艺基础动车组维护与检修
- 医用高等数学定积分课件
- 筋针疗法牛君银培训课件
- 深加工结转操作标准流程
- 溺水伤亡事故应急预案演练方案
- 2022年有子女离婚协议书手写
- 公路硬化报告范文
- 智慧羊肚菌种植示范基地解决方案
- 纳迪亚之宝全流程攻略 100%完结完整通关指南
- 人教版五年级数学上册教学计划单元教学计划
- 氟利昂安全事故应急预案
评论
0/150
提交评论