资料
  • 资料
  • 专题
寻求ARM问题的解决篇
推荐星级:
时间:2019-12-24
大小:66.5KB
阅读数:141
上传用户:二不过三
查看他发布的资源
下载次数
0
所需E币
3
ebi
新用户注册即送 300 E币
更多E币赚取方法,请查看
close
资料介绍
寻求ARM问题的解决篇 ARM 经典40问答 第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个操作数的描述中有这么一段:#in med_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……
版权说明:本资料由用户提供并上传,仅用于学习交流;若内容存在侵权,请进行举报,或 联系我们 删除。
PARTNER CONTENT
相关评论 (下载后评价送E币 我要评论)
没有更多评论了
  • 可能感兴趣
  • 关注本资料的网友还下载了
  • 技术白皮书