下载ppt文档-内容摘要:
0 无符号数小于 0100 MI N=1 负数 0101 PL N=0 正数或零 0110 VS V=1 溢出 0111 VC V=0 没有溢出 1000 HI C=1,Z=0 无符号数大于 1001 LS C=0,Z=1 无符号数小于或等于 1010 GE N=V 有符号数大于或等于 1011 LT N!=V 有符号数小于 1100 GT Z=0,N=V 有符号数大于 1101 LE Z=1,N!=V 有符号数小于或等于 1110 AL 任何 无条件执行 (指令默认条件 ) 1111 NV 任何 从不执行 (不要使用 ) 指令条件码表: 所谓的 ARM指令‘ 条件执行 ’是指在指令码中含有 本条指令的执行条件,当 CPSR中的条件码标志 满足时,处理器执行本条指令,否则本条指令 等价于空操作。 使用指令条件码可实现高效的 逻辑操作,提高代码执行效率。 42 ① ADD R0, R1, R2 ② ADDS R0, R1, R2 ③ ADDEQS R0, R1, R2 指令 ① 不带条件标志 (无条件 AL),指令的执行 不受条件标志位的影响。 实现:将 R1的值和 R2的值相加并存入 R4,运算结果不影响 CPSR状态值 指令 ② 的执行也不受条件标志的影响,但是由于附带了后缀 S,这条指令执行的结果将影响CPSR中条件标志位的值。 实现:将 R1的值和 R2的值相加并存入 R4,并且根据结果更新 CPSR中条件标志码 指令 ③ 中加上后缀 EQ变为 ADDEQ表示“相等则相加”,即当 CPSR中的 Z标志置位时该指令执行,否则不执行。 实现:当 CPSR中 Z=1时,执行 R0=R1+R2,并且根据结果更新 CPSR中条件标志码;否则若 Z=0跳过本指令不执行 条件后缀只是影响指令是否执行,不影响指令的内容,如上述 ADDEQ指令,可选后缀 EQ并不影响本指令的内容,它执行时仍然是一条加法指令。 43 C代码: if (a b) a++ ; else b++ ; 对应的汇编代码: CMP R0, R1。 R0与 R1比较 ADDHI R0, R0, 1。 选择执行 , 若 R0R1, 则 R0=R0+1 ADDLS R1, R1, 1。 选择执行 , 若 R0≤1, 则 R1=R1+1 条件码示例: 44 ( 1)如果既有条件后缀又有 S后缀,则书写时 S排在后面,如: ADDEQS R1, R0, R2 ( 2)条件后缀是要测试条件标志位,而 S后缀是要刷新条件标志位。 ( 3)条件后缀要测试的是执行前的标志位,而 S后缀是依据指令的结果改变条件标志。 条件后缀和 S后缀的区别。 45 第 3章 目录 1. ARM7TDMI编程模型 2. ARM7TDMI的寻址方式 3. ARM7TDMI指令的条件执行 4. ARM指令集 5. Thumb指令集 46 ARM指令集 A R M核 心内 存A R M 协 处 理 器加 载 指 令( L D R 等 )存 储 指 令( S T R 等 )通 用 寄 存 器数 据 处 理 指 令状 态 寄 存 器状 态 寄 存 器访 问 指 令协 处 理 器 指 令P C跳 转 指 令乘 法 器乘 法 指 令同一个体系的ARM内核的指令集是相同的 ,但是每条指令运行的时间可能不同。 47 ARM指令的基本格式如下: opcode {cond} {S} Rd, Rn {,operand2} 其中 号内的项是必须的 , {}号内的项是可选的。 各项的说明如下: opcode:指令助记符; cond: 执行条件; S:是否影响 CPSR寄存器的值; Rd:目标寄存器; Rn:第 1个操作数的寄存器; operand2:第 2个操作数; 1. ARM汇编语言的指令格式 48 opcode {cond} {S} Rd, Rn {,operand2} opcode 指令助记符 , 用于指定指令的操作功能。 cond 执行条件,用于指定指令的执行条件。 S 用于指定指令的执行是否影响CPSR寄存器的值,书写时影响 CPSR。 Rd 目标寄存器,用于存放运算的结果。 Rn 第 1个操作数的寄存器,用于存放参与运算的操作数 1。 Operand2 第 2个操作数,用于指定参与运算的第 2个操作数。 例如: SUBNES R0, R1, 0x10 其中操作码为 SUB,条件域 cond为 NE, S表示该指令的执行影响 CPSR寄存器的值, 目的寄存器 Rd为 R0, 第一个操作数寄存器 Rn为 R1, 第二个操作数 OP2为立即数 0x10。 灵活的使用第 2个操作数 “ operand2”能够提高代码效率。 它有如下的形式: immed_8r——常数表达式; Rm——寄存器方式; Rm,shift——寄存器移位方式; MOV R0, 1 AND R0, R1, 0x0F MOV PC, R0 LDR R0, [R1], R2 LSL 逻辑左移 LSR 逻辑右移 ASR 算术右移 ROR 循环右移 RRX 带扩展的循环右移 0( a ) L S L 移 位 操 作0( b ) L S R 移 位 操 作( c ) A S R 移 位 操 作( d ) R O R 移 位 操 作( e ) R R X 移 位 操 作C ADD R0, R1, R1, LSL 3 SUB R0, R1, R2, LSR 2 MOV R0, R1, RRX 49 2. ARM存储器访问指令 ARM处理器是典型的 RISC处理器,对存储器的访问只能使用加载和存储指令实现。 ARM处理器是冯 •诺依曼存储结构,程序空间、 RAM空间及 I/O映射空间统一编址,除对 RAM操作以外,对外围 IO、程序数据的访问均要通过加载 /存储指令进行。 存储器访问指令分为: 1 单寄存器加载与存储指令 2 多寄存器加载与存储指令 3 交换指令 A R M 处 理 器寄 存 器R 0 ~ R 1 5存 储 器存 储( s t o r e )加 载( l o a d )50 LDR和 STR ——(单寄存器)加载存储指令 LDR( LoaD Register from memory)指令从存储器加载一个数据到寄存器中; STR( STore Register to memory)指令则相反,把寄存器中的一个数据存储到存储器中。 指令格式: LDR{cond} Rd, 地址 STR{cond} Rd, 地址 地址 = 基址寄存器( Rn) + 偏移量 51 ( 1)立即数 立即数可以是一个无符号的数值,这个数值可以加到基址寄存器,也可以从基址寄存器中减去这个数值。 如: LDR R0, [R1, 0x12] LDR R0, [R1, 0x12] ( 2)寄存器 寄存器中的数值可以加到基址寄存器,也可以从基址寄存器中减去这个数值。 如: LDR R0, [R1, R2] LDR R0, [R1, R2] 地址偏移量有如下几种表示形式: 52 ( 3)寄存器及移位常数 这种格式由一个通用寄存器和一个立即数组成,寄存器中的数值可以根据指令中的移位标志以及移位常数作一定的移位操作,生成一个地址偏移量。 这个地址偏移量可以加到基址寄存器,也可以从基址寄存器中减去这个数值。 如: LDR R0, [R1,R2,LSL 2] LDR R0, [R1,R2,LSL 2] 53 2020/11/23 ARM指令中的地址索引也是指令的一个功能,索引作为指令的一部分,它影响指令的执行结果。 地址索引分为 前索引 (Preindexed) 后索引 (Postindexed) 程序相对偏移 地址索引偏移 54 2020/11/23 ( 1)前索引 前索引也称为前变址,在数据传送之前,将先计算基地址与偏移量,其结果作为传送数据的存储地址。 例如: LDR Rd, [Rn, 0x04]! LDR Rd, [Rn, 0x04] 55 ( 2)后索引 后索引也称为后变址,后索引就是用基址寄存器的地址值寻址,找出操作数进行操作, 操作完成后 , 再把地址偏移量和基址相加 /减 , 结果送到基址寄存器 , 作为下一次寻址的基址。 例: LDR Rd, [Rn], 0x04 STR Rd, [Rn], 0x08 在后索引中 , 基址在指令的执行前后是不相同的。 56 ( 3)程序相对偏移 程序相对偏移是前索引形式的另一个版本。 在这种方法中,基址寄存器默认为程序计数器PC,偏移量是语句标号所在的地址和 PC(当前正在执行的指令)之间的差值。 不能使用后缀“ !”。 汇编程序中,通常直接使用语句标号指定访问单元。 例: LDR Rd, label 57 LDM和 STM ——多寄存器加载 /存储指令 多寄存器加载 /存储指令可以实现在一组寄存器与一块连续的内存单元之间传输数据。 LDM( LoaD Mutiple registers from memory)指令是把多个内存单元的内容加载到多个寄存器中; STM( STore Mutiple registers to memory)指令是把多个寄存器的内容存储到多个内存单元中,这多个寄存器是 R0~ R15的任意组合(即, R0~ R15的任何子集)。 指令格式: LDM{cond}模式 Rn{!}, reglist{^} STM{cond}模式 Rn{!}, reglist{^} 58 L D MS T M{ c o n d } 模 式 R n { ! } , r e g l i s t { ^ }读 操 作LDM 写 操 作STM 条 件 码 , 使 指 令可 以 条 件 执 行{cond} 〈 模式 〉 用 于 控 制 指 针 的 生长 方 向 和 空 满 特 性指 针 寄 存 器 , 指 向 要 操 作 的 存储 器 起 始 地 址 , 不 能 为 R 1 5Rn 控 制 是 否 修 改 指 针 寄 存 器 的 最 后 值{。 } 操 作 寄 存 器 列 表 , 读 操 作 时 为 目 标寄 存 器 , 写 操 作 时 为 源 寄 存 器reglist 寄 存 器 列 表 中 无 P C 时 用 于 控 制 用 户 模 式 访 问 ,否 则 用 S P S R 的 值 恢 复 C P S R 寄 存 器{ ^} 59 〈 模式 〉 类型: 用于数据的存储与读取有以下几种情况: IA 每次传送后地址值加 IB 每次传送前地址值加 DA 每次传送后地址值减 DB 每次传送前地址值减 用于堆栈操作时有如下几种情况: FD 满递减堆栈 ED 空递减堆栈 FA 满递增堆栈 EA 空递增堆栈 60。 后缀: 选用该后缀 , 则当数据加载与存储完毕后 , 将最后的地址写入基址寄存器 , 否则基址寄存器的内容不变。 基址寄存器不允许为 R15, 寄存器列表可以为 R0~R15的任意组合。 ∧ 后缀:。下载ppt文档-
相关推荐
的百分之几。 ( 1)男生人数是女生人数的 70%, 男生人数比女生人数少( ) %。 ( 2)男生人数是女生人数的 70%, 女生人数比男生人数多( ) %。 ( 3)男生人数比女生人数多 10%, 男生人数是女生人数的 ( ) %。 ( 4)男生人数比女生人数少 20%, 男生人数是女生人数的( ) %。 ( 1)男生人数是女生人数的 70%, 男生人数比女生人数少( 30 ) %。 (
( 1, 2) ( 3, 1) ( 1, 5) ( 0, 1) ( 4, 2) ( 2, 5) ( 7, 7) ( 3, 6) ( 5, 3) 跟踪练习( 1) 4 3 4 3 2 1 2 1 0 1 1 2 2 3 3 4 4 x y A1( 3, 3) A( 2, 3) A2( 3, 1) B( 4, 2) B1( 1, 2) C( 1, 1) C1( 4, 1) B2( 1, 2) C2(
怎么样设计这个转盘才公平。 做一做 • 1,在一个不透明的盒子里,有同样大小的红球,蓝球,绿球,黄球,紫球,粉球各一个,那么在口袋里摸出红球的可能性是( ) 桌子上摆着 9张卡片,分别写关 19各数。 则摸到单数的可能性是( ), 摸到双数的可能性是( )。 5 6 7 8 9 1 2 3 4 (1)指针停在这四种颜色区域的可能性各是多少。 (2)如果转动指针 100次
小张猛一踢球 , 将球踢向了教室的窗户 , 弄坏了窗上玻璃 , 小张稍一停顿 , 便跑向操场。 小林见状犹豫了一下 , 顺手拿起扫帚扫起了玻璃 , 李老师正好从门前走过 , 批评小林不爱护公物 , 小林感到委屈。 …… 你觉得小林是否应该找老师解释呢。 请你说明理由。 情境再现 情境二 他如果不找老师解释,可能会产生哪些影响。 错误的方法 当面和老师争执、顶撞,或者自己生闷气,甚至走极端
上腔静脉内仍为自发快速节律 2020/11/23 9 讨论 目前认为上腔静脉是房颤除肺静脉外第二起源点 发生率: %~ %(国内报道) 6%( Tsai et al) . 2020/11/23 10 讨论 机制: 上腔静脉近心房端由延续的心房肌缠绕,存在异常自律性的心肌组织。 上腔静脉与右心房的心肌连接较局限,可能仅位于:前间隔侧、后壁、游离壁 前间隔侧连接 注