Miracle

有梦想就不会觉得苦。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年6月1日

摘要: arm体系结构与汇编100问第1章体系结构第1问:Q:请问在初始化CPU堆栈的时候一开始在执行movr0,LR这句指令时处理器是什么模式A:复位后的模式,即管理模式.第2问:Q:请教:MOV中的8位图立即数,是怎么一回事0xF0000001是怎么来的A:是循环右移,就是一个0—255之间的数左移或右移偶数位的来的,也就是这个数除以4一直除,直到在0-255的范围内它是整数就说明是可以的!A:8位数(0-255)循环左移或循环右移偶数位得到的,F0000001既是0x1F循环右移4位,符合规范,所以是正确的.这样做是因为指令长度的限制,不可能把32位立即数放在32位的指令中.移位偶数也是这个原因 阅读全文

posted @ 2011-06-01 22:06 gsky 阅读(1038) 评论(0) 推荐(0) 编辑

摘要: 在ARM处理器的汇编语言中,对指令语法格式中的<shifter_operand>的常数表达式有这样的规定:“该常数必须对应8位位图,即常数是由一个8位的常数循环移位偶数位得到的。” 首先从ARM指令系统的语法格式说起。一条ARM指令语法格式分为如下几个部分: <opcode>{<cond>}{S} <Rd>,<Rn>{,<shifter_operand>}其中,<>内的项是必须的,{}内的项是可选的,如<opcode>是指令助记符,是必须的,而{<cond>}为指令执行条件,是可选的,如 阅读全文

posted @ 2011-06-01 21:57 gsky 阅读(306) 评论(0) 推荐(0) 编辑

摘要: 带状态切换的跳转指令:BX 汇编格式: BX{<cond>} Rm 功 能: BX 指令跳转到指令中所指定的目标地址,并实现状态的切换。Rm 是一个表达目标地址的寄存器。当Rm 中的最低位Rm[0] 为 1 时,强制程序从ARM 指令状态跳到Thumb 指令状态;当 Rm 中的最低位Rm[0]为0 时,强制程序从Thumb 指令状态跳到ARM 指令状态。 BX 指令示例 CODE32 ;ARM 程序段,32 位编码 arm1 ADR R0,thumb1+1 ;伪指令,把语句标号thumb1 所在地址 ;赋给R0 ,末位R0[0] 置1 ,要跳转THUMB 指令集;THUMB 指令集 阅读全文

posted @ 2011-06-01 00:51 gsky 阅读(2705) 评论(0) 推荐(0) 编辑