第1 章 体系结构 ARM经典300问与答第1 问:Q:请问在初始化CPU 堆栈的时候一开始在执行mov r0, LR 这句指令时处理器是什么模式A:复位后的模式,即管理模式.第2 问:Q:请教:MOV 中的8 位图立即数,是怎么一回事 0xF0000001 是怎么来的A:是循环右移,就是一个0—255 之间的数左移或右移偶数位的来的,也就是这个数除以4一直除, 直到在0-255 的范围内它是整数就说明是可以的!A:8 位数(0-255)循环左移或循环右移偶数位得到的,F0000001 既是0x1F 循环右移4 位,符合规范,所以是正确的.这样做是因为指令长度的限制,不可能把32 位立即数放在32 位的指令中.移位偶数也是这个原因.可以看一看ARM 体系结构(ADS 自带的英文文档)的相关部分.第3 问:Q:请教:《ARM 微控制器基础与实战》2.2.1 节关于第2 个操作数的描述中有这么一段:#inmed_8r 常数表达式.该常数必须对应8 位位图,即常熟是由一个8 位的常数循环移位偶数位得到.合法常量:0x3FC,0,0xF0000000,200,0xF0000001.非法常量:0x1FE,511,0xFFFF,0x1010,0xF0000010.常数表达式应用举例:......LDR R0,[R1],#-4 ;读取 R1 地址上的存储器单元内容,且 R1 = R1-4针对这一段,我的疑问:1. 即常数是由一个8 位的常数循环移位偶数位得到,这句话如何理解2. 该常数必须对应8 位位图,既然是8 位位图,那么取值为0-255,怎么0x3FC 这种超出255 的数是合法常量呢3. 所举例子中,合法常量和非法常量是怎么区分的 如0x3FC 合法,而0x1FE 却非法0xF0000000,0xF0000001 都合法,而0xF0000010 又变成了非法4. 对于汇编语句 LDR R0,[R1],#-4,是先将R1 的值减4 结果存入R1,然后读取R1 所指单元的 值到R0,还是先读取R1 到R0,然后再将R1 减4 结果存入R1A:提示,任何常数都可用底数*2 的n 次幂 来表示.1. ARM 结构中,只有8bits 用来表示底数,因此底数必须是8 位位图.2. 8 位位图循环之后得到常数,并非只能是8 位.3. 0xF0000010 底数是9 位,不能表示.4. LDR R0, [R1], #-4 是后索引,即先读,再减.可以看一看ARM 体系结构对相关寻址方式的说明.
上传时间: 2013-11-22
上传用户:1109003457
可编程逻辑器件(PLD)是嵌入式工业设计的关键元器件。在工业设计中,PLD已经从提供简单的胶合逻辑发展到使用FPGA作为协处理器。该技术在通信、电机控制、I/O模块以及图像处理等应用中支持 I/O 扩展,替代基本的微控制器 (MCU) 或者数字信号处理器 (DSP)。 随着系统复杂度的提高,FPGA还能够集成整个芯片系统(SoC),与分立的 MCU、DSP、ASSP,以及 ASIC解决方案相比,大幅度降低了成本。不论是用作协处理器还是SoC,Altera FPGA在您的工业应用中都具有以下优点: 1. 设计集成——使用FPGA作为协处理器或者SoC,在一个器件平台上集成 IP和软件堆栈,从而降低成本。 2. 可重新编程能力——在一个公共开发平台的一片 FPGA中,使工业设计能够适应协议、IP以及新硬件功能的发展变化。 3. 性能调整——通过FPGA中的嵌入式处理器、定制指令和IP模块,增强性能,满足系统要求。 4. 过时保护——较长的 FPGA 产品生命周期,通过 FPGA 新系列的器件移植,延长工业产品的生命周期,保护硬件不会过时。 5. 熟悉的工具——使用熟悉的、功能强大的集成工具,简化设计和软件开发、IP集成以及调试。
上传时间: 2013-11-18
上传用户:tb_6877751
Protel 99SE采用数据库的管理方式。Protel 99SE软件沿袭了 Protel 以前版本方便易学的特点,内部界面与 Protel 99 大体相同,新增加了一些功能模块,功能更加强大。新增的层堆栈管理功能,可以设计 32 个信号层,16 个地电层,16 个机械层。新增的 3D 功能让您在加工印制版之前可以看到板的三维效果。增强的打印功能,使您可以轻松修改打印设置控制打印结果。Protel 99SE容易使用的特性还体现在“这是什么”帮助,按下右上角的小问号,然后输入你所要的信息,可以很快地看到特性的功能,然后用到设计中,按下状态 栏末端的按钮,使用自然语言帮助顾问。
上传时间: 2013-10-19
上传用户:shirleyYim
提出了一种将堆栈空间划分为任务栈和中断嵌套栈的设计结构,使堆栈空间最小化。采用VHDL硬件语言,在FPGA设备上模拟实现了具有自动检验功能的栈空间管理器。栈空间管理器由不同功能的逻辑模块组成,主要阐述了状态控制逻辑模块和地址产生逻辑模块的设计方法。
上传时间: 2013-11-08
上传用户:jiangfire
一些c程序,象棋之马踏棋盘、把算术表达式转化未逆波兰表达式、保龄球计分规则算法、可进行多达50位的大整数运算(+X)、铁路调度算法,演示了堆栈的基本用法
标签: 程序
上传时间: 2015-01-05
上传用户:372825274
数据结构的一个试验,是一个多项式的运算,里面封装了,链表的操作,堆栈的操作等常用的数据结构,适合初学者
标签: 数据结构
上传时间: 2014-01-08
上传用户:赵云兴
常用数据结构算法代码库,包括AVL树,链表,堆栈,hash,排序等
上传时间: 2014-01-15
上传用户:1159797854
本书是关于计算机科学与工程领域的基础性研究科目之一——数据结构与算法的专著。 本书在简要回顾了基本的C++ 程序设计概念的基础上,全面系统地介绍了队列、堆栈、树、图等基本数据结构,以及贪婪算法、分而治之算法、分枝定界算法等多种算法设计方法,为数据结构与算法的继续学习和研究奠定了一个坚实的基础。更为可贵的是,本书不仅仅介绍了理论知识,还提供了50多个应用实例及600多道练习题。 本书内容广博权威,结构清晰合理,是一本全新的有关数据结构与算法的教材,对于计算机科学与工程领域的从业人员也是一本很好的参考书。
上传时间: 2015-03-16
上传用户:aa17807091
fork和exec系列调用前后,进程在内存的“数据段”,“堆栈段”和“代码段”有什么不同?读了之后,你就会知道了,
上传时间: 2015-03-24
上传用户:lifangyuan12
/* 本程序实现的功能: 显示系统时间和日期 该程序主要操作是: 使用了dos的系统调用功能,输入大小写D显示系统当前日期,当输入大小写T输出当前系统时间,当输入大小写Q退出程序,当输入其他字符时,提示错误 。 主要算法:将系统时间及日期转化成字符显示,通过堆栈来排序显示,同时涉及到 坐标位置设置的转换。时间和日期的显示都只调用了一个(函数)compute,避免了代码的冗余,尽量做到简洁,同时当一次操作过后,程序处于等待状态,以进行下一次操作,而非自动退出。该程序显示时间时多次调用显示功能,以达到动态效果。*/
上传时间: 2014-01-18
上传用户:kelimu