- 1 - ARM 指 令 集 详 解 ARM 可 以 用 两 套 指 令 集 : ARM 指 令 集 和 Thumb 指 令 集
本 文 介 绍 ARM 指 令 集
在 介 绍 ARM 指 令 集 之 前 , 先 介 绍 指 令 的格 式
1 指 令 格 式 ( 1) 基 本 格 式 {}{S} ,{,} 其 中 , 内 的 项 是 必 须 的 , {}内 的 项 是 可 选 的 , 如 是 指 令 助 记 符 , 是 必 须 的 , 而 {}为 指 令 执 行 条 件 ,是 可 选 的 , 如 果 不 写 则 使 用 默 认 条 件 AL(无 条 件 执 行 )
opcode 指 令 助 记 符 , 如 LDR, STR 等 cond 执 行 条 件 , 如 EQ, NE 等 S 是 否 影 响 CPSR 寄 存 器 的 值 , 书 写 时 影 响 CPSR, 否 则 不 影 响 Rd 目 标 寄 存 器 Rn 第 一 个 操 作 数 的 寄 存 器 operand2 第 二 个 操 作 数 指 令 格 式 举 例 如 下 : LDR R0,[R1] ;读 取 R1 地 址 上 的 存 储 器 单 元 内 容 , 执 行 条 件 AL BEQ DATAEVEN ;跳 转 指 令 , 执 行 条 件 EQ, 即 相 等 跳 转 到 DATAEVEN ADDS R1,R1,#1 ;加 法 指 令 , R1+ 1= R1 影 响 CPSR 寄 存 器 , 带 有 S SUBNES R1,R1,#0xD;条 件 执 行 减 法 运 算 (NE), R1-0xD=>R1, 影 响 CPSR 寄 存 器 , 带 有 S ( 2) 第 2 个 操 作 数 在 ARM 指 令 中 , 灵 活 的 使 用 第 2 个 操 作 数 能 提 高 代 码 效 率 , 第 2 个