单片机关于按键后汇编语言跳转指令问题代码(转移指令表问题)

【图文】单片机3.5控制转移指令_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机3.5控制转移指令
移动互联网维护|
总评分4.2|
用知识赚钱
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢微控制器_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
微控制器是将的主要部分集成在一个芯片上的单芯片微型计算机。微控制器诞生于20世纪70年代中期,经过20多年的发展,其成本越来越低,而性能越来越强大,这使其应用已经无处不在,遍及各个领域。例如电机控制、条码阅读器/扫描器、消费类电子、游戏设备、电话、HVAC、楼宇安全与门禁控制、工业控制与自动化和白色家电(洗衣机、微波炉)等。
微控制器分类
微控制器(Microcontroller Unit,即MCU)可从不同方面进行分类:根据数据总线宽度可分为8位、16位和32位机;根据存储器结构可分为Harvard结构和Von Neumann结构;根据内嵌程序存储器的类别可分为OTP、掩膜、EPROM/EEPROM和闪存Flash;根据指令结构又可分为CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)微控制器。
微控制器发展历程
Intel公司作为最早推出的公司,同样也是最早推出微控制器的公司。继1976年推出MCS-48后,又于1980年推出了MCS-51,为发展具有良好兼容性的新一代微控制器奠定了良好的基础。在8051技术实现开放后,Philips、Atmel、Dallas和Siemens等公司纷纷推出了基于80C5l内核(805l的CMC)S版本)的微控制器。这些各具特色的产品能够满足大量嵌入式应用需求。基于80C51内核的微控制器并没有停止发展的脚步,例如现在Maxim/Dallas公司提供的DS89C430系列微控制器,其单周期指令速度已经提高到了805l的12倍。
基于CISC架构的微控制器除了80C51外,还包括Motorola提供的68HC系列微控制器,这也是大量应用的8位微控制器系列。
基于RISC架构的微控制器则包括Microchip的PIC系列8位微控制器等。在16位RISC架构的微控制器中,Maxim公司推出的MAXQ系列微控制器以其高性能、低功耗和卓越的代码执行效率,成为许多需要高精度混合信号处理以及便携式系统和电池的理想选择。
微控制器内核
基于8051内核的CISC微控制器
迄今为止,MCS-51已成为8位机中运行最慢的系列。现在Dallas推出的DS89C430系列产品在保持与80C51引脚和指令集兼容的基础上,每个机器周期仅为一个时钟,实现了8051系列的最高吞吐率。一般而言,对于现有的基于8051的应用软件可以直接写入DS89C430而无需进行更改。除此之外,DS89C430还在许多其他方面引入了新的功能,从而为具体应用提供了更多灵活性。下面介绍DS89C430不同于8051的功能和特点。
微控制器片内程序存储器及应用
片内程序存储器逻辑上分为成对的8 KB、16 KB或32 KB闪存单元,以支持在应用编程。这允许器件在应用软件的控制下修改程序存储器,应用系统能够在执行其主要功能的情况下,完成在线软件升级。DS89C430集成了64 B加密阵列,允许用户以加密形式查看数据,进行程序代码校验。
器件支持通过串口实现在。在系统编程通过将器件的一个或多个外部引脚设置为某特定状态来激活引导加载程序。器件启动后,开始执行驻留于器件内部专用ROM的加载程序。一旦收到一个回车符号,串口就执行自动波特率功能,并与主机的波特率同步。如图1所示是在系统编程的物理连接.简单的引导加载程序接口允许使用几种方法来实现PC机与目标微控制
器间的通信。最简单的方法是使用Dallas的微控制器工具包(MTK)软件.它具有高度前端特征,简化了目标配置,上传、下载代码以及特殊功能配置等任务操作。
微控制器双数据指针
8051微控制器是通过MOVX指令来访问片外数据空间的,用MOVX@DPTR指令可访问整个64 KB的片外数据存储器。传统的8051只有一个数据指针DPTR,要将数据从一个地址移到另一个地址非常麻烦。DS89C430则具备双数据指针DPTR0和DPTRl,因此软件可以使用一个指针装载源地址,另一个指针装载目的地址。DPTR0的SFR地址与805l相同(82H和83H),因此使用该指针时无需更改,DPTRl位于84H和85H地址。所有与数据指针相关的操作都使用活动数据指针,活动指针通过控制位SEL选择。每个指针还各有
一个控制位,决定INCDPTR操作是递增还是递减数据指针值。
在拷贝数据块时,与使用单数据指针相比,双数据指针可以节省大量代码。用户通过转换SEL位来转换活动数据指针,其中一种方法可通过执行INCDPS指令来实现。对于这些大的数据块拷贝,用户必须频繁执行该指令来转换DPTR0和DPTRl。为了在节省代码的同时提高运行速度和效率,DS89C430又包含了一个转换选择位 (TSL),来确定执行MOVX指令时硬件是否自动转换SEL位,这样就可以省去INCDPS指令并进一步提高运行速度。
大的数据块拷贝需要源指针和目的指针逐字节寻址数据空间,传统的方法是通过使用INCDPTR指令来增加数据指针。为了进一步提高,引入了自动增减控制位(AID),用以确定执行MOVX指令时,是否会自动增减活动指针值。表l为各种情况下DS80C320和DS89C430进行64B数据块传输时的速度比较。从表l中可以看出,采用双数据指针后运行速度得到极大提高。
微控制器电源管理和时钟分频控制
CMOS电路的功耗主要由两部分组成:连续漏电流造成的静态功耗以及对负载电容进行充放电所需的转换开关电流造成的动态功耗。其中,动态功耗是总体功耗的主要部分,该功耗(PD)可以通过负载电容(CL)、电源电压(VDD)和工作频率(f)进行计算,即:PD=CL×VDD2×f。
对于某具体应用,电容和电源电压相对固定,而处理器的处理速度在不同时刻可能是不同的,因此工作频率可以根据不同需要进行调整,从而在不影响系统性能的前提下达到降低功耗的要求。
DS89C430支持三种低功耗节电模式。
①系统时钟分频控制:允许微控制器使用内部分频的时钟源继续工作,以节省功耗。通过软件设置时钟分频控制位,设置工作速率为每机器周期1024个振荡器周期.
②空闲模式:以静态方式保持程序计数器,并挂起处理器。在此模式中,处理器不取指令也不执行指令。除了外围接口时钟保持为活动状态以及定时器、、串口和电源监视功能仍然工作外,所有的资源均保存。处理器能够使用允许的中断源退出空闲模式。
③停机模式:禁止处理器内部的所有电路。所有片内时钟、定时器和串口通信都停止运行,处理器不执行任何指令。通过使用六个外部中断中的任何一个,处理器都能够退出停机模式。
微控制器架构
基于RISC架构的微控制器
MAXQ2000微控制器是Maxino/Dallas公司推出的一款基于RISC架构的16位微控制器。理解这款微控制器的一些结构特点,可以使我们更好地理解RISC结构微控制器的最新发展趋势和技术特点,从而为我们构建新型系统提供更加理想的选择。MAXQ2000的指令读取和执行操作在一个周期内完成,而没有流水线操作,这是因为指令既包含了操作码也包括了数据。字母Q表示这款微控制器的一个重要特点便是“安静”,MAXQ架构通过智能化的时钟管理来降低噪声.这意味着MAXQ只向那些需要使用时钟的电路提供时钟,这样既降低了功耗,又为模拟电路的整合提供了一个最安静的环境。它包含液晶显示(LCD)接口,最多可以驱动100或132段(两种版本)。这款微控制器的功耗指标和MIPS/MHz代码效率方面都在同类微控制器当中遥遥领先.下面介绍MAXQ2000的主要特性。
微控制器指令集
指令集由23条对寄存器和存储器进行操作的固定长度的16位指令组成。指令集高度正交,允许算术和逻辑操作使用累加器和任何寄存器。特殊功能寄存器控制外围设备,并细分成寄存器模块。产品系列的结构是模块化的,因此新的器件和模块能够继续使用为现有产品开发的代码.该结构是基于传送触发的,这意味着对某一寄存器位置的读或写会产生额外作用。这些额外作用构成了由汇编器定义的高层操作码的基础,如ADDC、OR和JUMP等。
微控制器存储器
MAXQ2000具有32KB闪存、lKBRAM、4KB的内部ROM存储器块和16级堆栈存储器。存储器缺省配置成Harvard结构,程序和数据存储器具有独立的地址空间,还可以使能为Vorl Ncumann存储器配置模式,即将固定用途ROM、代码和数据存储器放置到一个连续的存储器映射中.这适合于需要进行动态程序修改或特殊存储器配置的应用。闪存程序存储器可以通过16字密钥进行密码保护,从而防止未授权者访问程序存储器。同时,还具有3个数据指针,支持高效快速地处理数据.
固定用途ROM由可以在应用软件中进行调用的子程序组成(缺省起始地址为8000H).包括:通过JTAG或UART接口进行在系统编程(引导加载程序);在电路调试程序;测试程序(内部存储器测试,存储器加载等);用于在应用闪存编程和快速查找表的用户可调用程序。无论以任何方式复位,都从固定用途ROM开始运行程序。R。M软件决定程序立刻跳转到8000H位置、用户应用代码的起始位置、还是上面提到的某特定用途子程序.用户可访问固定用途ROM中的程序,并且可以由应用软件调用这些程序。
微控制器寄存器组
器件的大多数功能是由寄存器组来控制的。这些寄存器为存储器操作提供工作空间,并配置和寻址器件上的外设寄存器。寄存器分成两大类:系统寄存器和外设寄存器.公共寄存器组也称作系统寄存器,包括ALU、累加器寄存器、数据指针、堆栈指针等。外设寄存器定义了可能包含在基于MAXQ架构的不同产品中的附加功能.
微控制器电源管理
MAXQ2000同样提供了先进的电源管理功能,根据系统不同时刻的不同性能需求,可以动态设置处理速度,从而大大降低功耗。通过软件选择分频功能,来选择系统时钟周期是l、2、4或者8个振蔼周期。为进一步降低功耗,还有另外三种低功耗模式,256分频、32 kH。和停机模式。
微控制器中断
提供多个中断源,可对内部和外部事件快速响应。MAXQ结构采用了单一中断向量(IV)和单一(ISR)设计。必须在用户中断程序内清除中断标志,以避免由同一中断源引发重复中断。当检测到使能的中断时,软件跳转到一个用户可编程的中断向量位置。
一旦软件控制权转移到ISR,可以使用中断识别寄存器(IIR)来判定中断源是系统寄存器还是外设寄存器。然后,就可以查询特定模块以确定具体中断源,并采取相应的操作。由于中断源是由用户软件识别的,因此用户可以为每种应用确立一个独特的中断优先级方案。
微控制器硬件乘法器
集成的硬件乘法器模块执行高速乘法、乘方和累加操作,并能在一个周期内完成一个16位×16位乘法和累加操作。硬件乘法器由2个]6位并行加载操作数寄存器(MA,MB)和1个累加器组成。加载寄存器能够自动启动操作,从而节省了重复计算的时间。硬件乘法器的累加功能是数字滤波、信号处理以及PII)控制系统中的一个基奉单元,这使得MAXQ2000可以胜任需要大量数学运算的应用。
微控制器发展前景
通过以上两种基于CISC.和RISC架构的微控制器的对比分析,会发现许多共同的特性,如安全特性、外围设备、电源管理和在系统编程等。显然.它们都是适应具体应用的共性要求而增加的功能。两者最大的不同是指令结构的差异。MCS一5l有50条基本指令,若累计各种不同寻址方式,指令共计lll条,对应的机器指令有单字节、双字节和三字节指令~68H(:05有62条基本指令,加上多种寻址方式,最终指令达210条,也分为单字节、双字节和三字节指令。比较而言,RIS(:微控制器的所有指令是由一些简单、等长度的指令构成.精简指令使微控制器的线路可以尽量优化,硬件结构更加简单,从而可以实现较低的成本和功耗,当然完成相同的工作可能需要更多的指令。所以,二者取舍之间没有绝对优势,只能说根据应用的不同需求和侧重来进行选择。
微处理器是20世纪伟大的技术创新之一,由此而衍生的微控制器将微处理器和外设集于一身,为多种应用开创了新局面,并将继续发挥不可替代的作用。
微控制器体系结构
微控制器哈佛结构
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。
哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和存储的,执行时可以预先读取下一条指令。目前使用哈佛结构的中央处理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、的AVR系列和安谋公司的ARM9、ARM10和ARM11,51也属于哈佛结构。
微控制器诺伊曼结构
冯·诺伊曼结构也称,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。
目前使用冯·诺伊曼结构的中央处理器和微控制器有很多。除了上面提到的英特尔公司的8086,英特尔公司的其他中央处理器、安谋公司的ARM7、的MIPS处理器也采用了冯·诺伊曼结构。
微控制器图书信息
微控制器基本信息
书 名: 微控制器
作 者:(印度)卡莫(Kamal.R.)
出版社:机械工业出版社
出版时间:2009年09月
开本:16开
定价: 75.00 元
微控制器内容简介
《微控制器:架构、编程、接口和系统设计》全面介绍各种主流微处理器、控制与通信接口、编程、以及开发调试工具和系统设计等内容,系统完整地讨论了嵌入式系统开发的相关技术和知识,适合电学、电子学、计算机科学工程专业的本科生阅读。对感兴趣的软件工程师和对单片机交互感兴趣的硬件工程师而言,《微控制器:架构、编程、接口和系统设计》也是难得的软硬件兼备的优秀参考书。《微控制器:架构、编程、接口和系统设计》从8051微控制器着眼,讲解使用、80x96和ARM系列微控制器进行系统开发的方法,并通过实例对RTOS,软件构件块、中断处理机制、定时器、IDE和接口电路的使用进行详解。除微控制器的通用体系结构以外,《微控制器:架构、编程、接口和系统设计》还覆盖了程序设计、接口设计和系统设计等主题。
微控制器作者简介
Raj Kamal,资深教授,他的研究领域包括嵌入式系统、微控制器、Internet、Web技术和计算机系统结构等,在国内外杂志上发表过大量研究论文。
微控制器图书目录
出版者的话
第1章 微控制器的种类、选择和应用
1.1 微控制器
1.1.2 微处理器
1.1.3 微计算机
1.1.4 计算机系统
1.1.5 微控制器
1.1.6 嵌入式处理器
1.2 微控制器的种类
1.2.1 8位、16位、32位微控制器
1.2.2 全内嵌式和带外部存储器的微控制器
1.2.3 CISC和RISC结构微控制器
1.2.4和存储结构微控制器
1.3 主流微控制器概览
1.3.1 8051、扩展8051XA和8051MX系列
1.3.2 MC68HCll/68HCl2系列
1.4 微控制器的选择
1.4.1 所需特性列表及需要考虑的因素
1.4.2 处理器和处理器系列的选择
1.4.3 基于片上资源的选择
1.4.4 软件构建块的选择
1.4.5 基于开发工具的选择
1.5 应用实例
1.5.1 自动加工控制
1.5.2 仪器应用
多项选择题
第2章 微控制器的体系结构和资源概述
2.1 微控制器体系结构
2.1.1 微控制器体系结构的功能概述
2.1.2 8048系列微计算机的管脚和信号
2.2 系列成员
2.3 微控制器资源
2.3.1 总线宽度
2.3.2 程序和数据存储器
2.3.3 并口
2.3.4 EEPROM和Flash
2.3.6 使用PWM或者定时器的片上D/A转换
2.3.7 片上A/D转换
2.3.8 复位电路
2.3.10 灵活位处理能力
2.3.11 节电模式
2.3.12 定时器
2.3.14 异步和接口
2.4 高级和下一代微控制器中的资源
多项选择题
第3章 系列的体系结构
3.1 8051微控制器
3.1.1 硬件
3.1.2 端口和电路的10管脚
3.2 内部和外部存储器
3.3 计数器和定时器
3.4 Intel8051的同步串行和接口
3.4.1 串行同步通信
3.4.2 串行异步模式通信
3.4.3 与RS232连接
多项选择题
第4章 8501系列微控制器指令集
4.1 基本汇编语言编程
4.1.1 机器码
4.1.2 指令中的操作码和操作数
4.1.3 指令周期
4.1.4 指令执行时间
4.1.5 作为指令集合的程序和例程
4.1.6 寻址模式
4.1.7 指令集的指令分类
4.2 数据传送指令
4.2.1 MOV指令
4.2.2 MOVC类型指令
4.2.3 MOVx类型指令
4.2.4 应用SP来使用堆栈区域的PUSH和POP指令
4.2.5 xCH类型指令
4.3 数据和位处理指令
4.3.1 字节数据处理(清除、求补、循环移位和交换)指令
4.3.2(位)处理和布尔处理指令
4.4 算术指令
4.5 对寄存器、内部RAM和SFR字节进行逻辑操作的指令
4.6 程序流控制指令
4.6.1 周期延迟(NOP)指令
4.6.2 长跳转、绝对跳转和短跳转
4.6.3 条件相对短跳转
4.6.4 递减然后根据是否为O进行条件跳转
4.6.5 比较后跳转
4.6.6 例程调用——无条件返回和从例程中返回
4.7 中断控制流程(RETI指令)
多项选择题
第5章 实时控制:中断
5.1 MCU的中断处理结构
5.1.1 例程、中断和中断服务例程
5.1.2 8051中的中断服务
5.1.3 中断源的标识
5.1.4 中断服务例程的地址
5.2 中断等待时间和中断最终期限
5.3 多重中断源
5.4 不可屏蔽中断源
5.5 中断源的使能(解除屏蔽)或者禁用
5.6 轮询来确定中断源及其优先级分配
5.6.1 轮询更高优先级中断源的优点
5.6.2 在ISR结束时轮询更高优先级待响应中断源的优点
5.7 Intel805l中的中断结构
多项选择题
第6章 实时控制:定时器
6.1.MCU中的可编程定时器
6.1.1 编程特性
6.1.2 溢出事件
6.2 自由运行计数器和实时控制
6.2.1 使用输出比较寄存器以及作为自由运行计数器运行的定时器
6.2.2 使用输入采集寄存器
6.2.3 实时钟中断
6.2.4 软件定时器
6.3 中断间隔和密度、约束
6.3.1 中断服务延迟
6.3.2 中断服务间隔
6.3.3 中断密度
6.3.4 中断约束
多项选择题
第7章 系统设计:外设与接口
7.1 8251串行10USART通信接口
7.1.1 825l的编程
7.1.2 处理器和DCE的连接
7.2 8255并行端口接口
7.2.1 8255编程
7.2.2 连接8255到处理器
7.3 8257可编程DMA控制器
7.3.1 10事务的方法
7.3.2 8257编程
7.3.3 连接到、8096和86HCll12
7.4 可编程中断控制器8259
7.5 ADC电路接口
7.6 DAC电路接口
7.7 内部集成电路接口(标准)
多项选择题
第8章 系统设计:数字和模拟接口方法
8.1 开关、小键盘和键盘接口
8.1.1 单键按键(开关)及其接口
8.1.2 按键阵列和它的接口
8.1.3 小键盘或者键盘(按键)和它的接口
8.2 LED和LED阵列
8.2.1 LED和LED信号器
8.2.2 LED或信号器的阵列
8.2.3 7段十六进制数字的LED阵列
8.3 键盘/显示器控制器(8279)
8.4 文字数字式设备——显示系统和它的接口
8.4.1 16段数码显示器
8.4.2显示器
8.4.4 LCD显示器控制器
8.4.5 LcD显示控制器的接口连接
8.4.6 Hitachi44780、OptrexDMC16xx、DMCl6 xxx、DMC20xxx和DMC24XXX系列兼容LCD控制器的编程
8.5 打印机接口
8.5.1 并行接口来连接打印机中的打印控制器
8.5.2 串行RS232C:接口来连接打印机中的打印控制器
8.6 使用IEEE488(GPIB)总线来实现可编程指令接口
8.7 与Flash存储器连接的接口
8.8 其他一些接口
8.8.1 将MCU端口10管脚与连接的光隔离
8.8.2 与线圈的接口
8.8.3 与扩音器的接口
8.8.4 在音乐播放盒中与小键盘和扬声器的接口
8.8.5 在机器人、打印机或工业驱动器中与步进电机的接口
8.9 与大功率设备连接的接口
8.9.1 与输入和输出模块连接的接口
8.9.2 与大功率电机和加热器连接的接口
8.9.3 使用高级微控制器来与功率器件连接的接口
8.10 模拟输入接口
8.11 模拟输出接口
8.11.1 DC电机控制
8.11.2 伺服电机控制
8.12 光学电机转轴编码器
8.12.1 增量式转动编码器
8.12.2 旋转绝对角度编码器
8.13 工业控制
8.13.1 控制应用
8.13.2 基于MCU的刻度尺
8.15 基于MCU测量仪表的原型
8.16 机器人和嵌入式控制
8.17和数字滤波器
8.17.1 数字信号处理
8.17.2 数字滤波器
多项选择题
第9章 编程框架:汇编语言和C语言编程
9.1 编程基础
9.1.1 寄存器
9.1.2 Intel80518位PSW(程序状态字)
9.1.3 Intel80x9616位PSW(程序状态字)
9.1.4 Motorola8位68HC11CCR(状态条件码)
9.1.5 累加器
9.1.6 指向内存的寄存器(变址寄存器和基址寄存器)
9.1.7 通用数据/地址寄存器和临时内存或寄存器文件
9.1.8 位可访问寄存器
9.1.9 cPU寄存器结构的考虑
9.1.1 0指令和寻址模式
9.2 CPU寄存器和内部RAM的结构
9.3 汇编语言编程
9.4 汇编程序
9.5 在中断期间保持CPU状态
9.6 传递参数
9.6.1 传递参数
9.6.2 将参数传递到堆栈中
9.7 控制结构
9.7.1 N路分支(决策块)
9.7.2 循环
9.8 运行时计算分支转移目的地
9.9 C语言编程和使用GNU工具
9.9.1 用C语言编程
9.9.2 内嵌代码
9.9.3 参数传递
9.9.4 程序编译过程和开发工具
9.9.5 GNU工具
多项选择题
第10章 编程框架:软件构建模块
lO.3.1 表数据和软件构建模块
10.3.2 查询表
10.3.3 Hash表
10.4 字符串
10.4.1 字符串作为可变长度的字符
10.4.2 将字符串作为程序存储中的常量使用
10.5 状态机
10.6 按键处理
10.6.1 实际使用中的按键处理
第11章 系统设计中的
第12章 微控制器应用程序开发工具
第13章 16位微控制器系列
第14章 MotorolaMC68HCll系列
第15章 ARM32位McU:架构、编程和开发工具
多项选择题答案
清除历史记录关闭豆丁微信公众号
君,已阅读到文档的结尾了呢~~
高考试题库 试题库 2013时事政治试题库 高中语文试题库 征信业务试题库 高中试题库 统计学试题库 公务员试题库 一级建造师试题库 十八大试题库及答案
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
单片机试题库
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口跳转指令之:跳转指令B及带连接的跳转指令BL-嵌入式系统-与非网
跳转()和跳转连接()指令是改变指令执行顺序的标准方式。一般按照字地址顺序执行指令,需要时使用条件执行跳过某段指令。只要程序必须偏离顺序执行,就要使用控制流指令来修改程序计数器。尽管在特定情况下还有其他几种方式实现这个目的,但转移和转移连接指令是标准的方式。
改变程序的执行流程或者调用子程序。这种指令使得一个程序可以使用子程序、if-then-else结构以及循环。执行流程的改变迫使程序计数器PC指向一个新的地址,ARMv5架构指令集包含的跳转指令如表8.1所示。
表8.1 ARMv5架构跳转指令
带返回的连接跳转
pc&label(lr&BL后面的第一条指令)
跳转并切换状态
pc&Rm&0xfffffffe,&T&Rm&1
带返回的跳转并切换状态
pc&lable,&T&1
pc&Rm&0xfffffffe,&T&Rm&1
lr&BL后面的第一条指令
另一种实现指令跳转的方式是通过直接向PC寄存器中写入目标地址值,实现在4GB地址空间中任意跳转,这种跳转指令又被称为长跳转。如果在长跳转指令之前使用&MOV&&LR&或&MOV&&PC&等指令,可以保存将来返回的地址值,也就实现了在4GB的地址空间中的子程序调用。
在ARMv5以前的版本中,传送到PC寄存器中的目标地址值的低两位bits[1∶0]被忽略,跳转指令只能在ARM指令集中执行,即程序不能从ARM状态切换到Thumb状态。在非T系列版本5的ARM体系不含Thumb指令,当程序试图切换到Thumb状态时,将产生未定义指令异常中断。
在ARMv5以后的版本中,有两种类型的带连接的跳转切换指令(BLX),叙述如下。
(1)形式如&BLX&&&Rm&&,它是一种类似于带寄存器Rm的BX指令。指令执行BX操作,同时将返回地址放到LR寄存器中。这种形式的带状态切换的跳转连接指令,方便了ARM/Thumb互交的子程序调用。
(2)另一种类型的BLX指令类似于BL指令,指令使程序跳转到指定地址,并将返回地址保存到LR寄存器中,该指令能够实现32MB地址空间的跳转。与BL指令的不同之处在于它返回到Thumb状态,而不是ARM状态。
8.1&&跳转指令B及BL
1.指令编码格式
跳转指令B使程序跳转到指定的地址执行程序。带连接的跳转指令BL将下一条指令的地址拷贝到r14(即返回地址连接寄存器LR)寄存器中,然后跳转到指定地址运行程序。需要注意的是,这两条指令和目标地址处的指令都要属于ARM指令集。两条指令都可以根据CPSR中的条件标志位的值决定指令是否执行。
指令的编码格式如图8.1所示。
图8.1&&B&BL指令编码格式
2.指令的语法格式
B{L}{&cond&}&&&target_address&
为指令编码中的条件域。它指示指令在什么条件下执行。当&cond&忽略时,指令为无条件执行(cond=AL(Alway))。
L位(bit[24])=1,指令存储返回地址到LR;L位(bit[24])=0,指令仅实现跳转,不保存返回指令。
③&&target_addrss&
指令跳转的目标地址。指令通过下面的方法计算目标地址。
&&&将24位的立即数符号扩展为32位。
&&&将扩展后的32位立即数左移两位。
&&&将得到的值加到PC寄存器中,即得到跳转的目标地址。
由于以上原因,B和BL指令只能实现&32MB空间的跳转。
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
华清远见(www.farsight.com.cn)是国内领先嵌入师培训机构,2004年注册于中国北京海淀高科技园区,除北京总部外,上海、深圳、成都、南京、武汉、西安、广州均有直营分公司。华清远见除提供嵌入式相关的长期就业培训、短期高端培训、师资培训及企业员工内训等业务外,其下属研发中心还负责嵌入式、Android及物联网方向的教学实验平台的研发及培训教材的出版,截止目前为止已公开出版70余本嵌入式/移动开发/物联网相关图书。企业理念:专业始于专注 卓识源于远见。企业价值观:做良心教育、做专业教育,更要做受人尊敬的职业教育。
当前安卓支持三类处理器:ARM、Intel和MIPS。ARM无疑被使用得最为广泛。Intel因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小。MIPS在32位和64位嵌入式领域中历史悠久,获得了不少的成功,可目前Android的采用率在三者中最低。
发表于: 13:49:18
为了打破西方国家在芯片技术领域对我国的封锁和限制,国家启动了“核高基”(核心电子器件、高端通用芯片及基础软件产品)重大专项,集中力量攻克相关领域的核心关键技术,构建自主的创新体系,使我国摆脱被人卡脖子的尴尬境地,从而成为世界信息产业的有力竞争者。经过多年的不懈努力,我国先后推出了龙芯系列、申威系列等一大批自主研制的国产芯片,取得了令世人瞩
发表于: 09:23:45
在占地球总面积70%左右的海洋上无法建立基站,由此迫切需要稳健的船载卫星通信系统。船载卫星通信系统研究主要包括系统配置设计、控制策略、硬件选型和监控系统的设计。为了克服船体的运动,三轴随动控制系统采用模糊PID算法,根据一系列的对星策略以使船体在运动中始终对准卫星,实现实时通信。
发表于: 16:09:20
做嵌入式开发已经好几年,也算对这行有了点粗略的认识。可能很多新手朋友有疑问,到底要如何学习才能比较快地熟练掌握嵌入式开发呢?今天我们来抛砖引玉,看看高手的看法。
发表于: 16:25:41
CPU是现代计算机的核心部件,又称为“微处理器”。对于PC而言,CPU的规格与频率常常被用来作为衡量一台电脑性能强弱重要指标。Intelx86架构已经经历了二十多个年头,而x86架构的CPU对我们大多数人的工作、生活影响颇为深远。
发表于: 16:01:14
相比三星、东芝、美光等公司,中国现在DRAM内存、NAND闪存技术上要落后多年,不过中国的科研人员也一直在追赶最新一代技术。
发表于: 08:36:00
最近,韩国科学技术院大学与军工企业“韩华 Systems”合作研发自主武器,遭全球50多名人工智能学者联名抵制,南京大学周志华教授是唯一一名中国内地学者。
发表于: 13:44:57
4月11日,长江存储以“芯存长江,智储未来”为主题,庆贺存储器基地正式移入生产设备。
发表于: 09:53:24
在半导体领域“得存储者,得天下”,这句话一点都不夸张。2017年三星正是借着全球存储芯片大涨价之际,一举将英特尔挑下台,成为了全球最大芯片制造商。
发表于: 09:36:49
最近美光的股价出现了波动,可能是投资者从华尔街嗅到了一些消息,他们开始感受到了内存定价环境的低迷,并且毫无预兆的产生了恐慌。这也在情理之中,毕竟美光股票在过去一年里翻了一番,投资者当然希望在内存价格下跌之前获得收益。
发表于: 13:12:41
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号}

我要回帖

更多关于 三菱plc跳转指令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信