- 1、本文档共202页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2操作数-嵌入式汇编语言程序设计
ARM指令集与编程 目录 总体介绍:指令分类,特点,格式,条件码 ARM 指令寻址方式 数据处理指令:数据传输指令,算术指令,逻辑指令,比较指令,乘法指令(略),前导零计数(略) 程序状态访问指令 跳转指令 单数据访存指令 多数据访存指令 其它指令:信号量操作指令,异常中断产生指令,协处理器指令(略) 伪指令 基于ARM的编程 1 总体介绍:指令分类,特点,格式,条件码 1.1 指令分类 ARM指令集总体分为6类指令 数据处理指令:数据传输指令,算术指令,逻辑指令,比较指令,乘法指令,前导零计数。 程序状态访问指令:mrs和msr。 跳转指令:b和bl。 访存指令:单数据访存指令,多数据访存指令,信号量操作指令。 异常中断产生指令:swi和bkpt。 协处理器指令。 1.2 指令特点 所有指令都是32bit。 大多数指令都在单周期内完成。 所有指令都可以条件执行。 load/store体系结构。 指令集可以通过协处理器扩展 1.3 ARM指令的格式 Opcode{cond}{s} Rd, Rn, Operand2 Cond:指令的条件码。 Opcode:指令操作码。 S:操作是否影响cpsr。 Rn:包含第一个操作数的寄存器编码。 Rd:目标寄存器编码。 Operand2:第2操作数。 1.3 ARM指令的格式(续) 1.4 ARM指令的条件执行 1.4.1 ARM指令的条件域 EQ/NE: 等于/不等于(equal / not equal) HS/LO: 无符号数高于或等于/无符号数小于(higher or same/lower) HI/LS: 无符号数高于/无符号数低于或等于(higher/lower or same) GE/LT: 有符号数大于或等于/有符号数小于(greater or equal / less than) GT/LE: 有符号数大于/有符号数小于或等于(greater than / less or equal) MI/PL: 负/非负 VS/VC: 溢出/不溢出(overflow set / overflow clear) CS/CC: 进位/无进位(carry set / carry clear) 1.4.2 ARM指令的条件码 1.4.2 ARM指令的条件码(续) 目录 总体介绍:指令分类,特点,格式,条件码 ARM 指令寻址方式 数据处理指令:数据传输指令,算术指令,逻辑指令,比较指令,乘法指令(略),前导零计数(略) 程序状态访问指令 跳转指令 单数据访存指令 多数据访存指令 其它指令:信号量操作指令,异常中断产生指令,协处理器指令(略) 伪指令 基于ARM的编程 2 ARM 指令寻址方式 2.1 寄存器寻址 2.2 立即寻址 2.3 寄存器移位寻址 逻辑移位 LSL:逻辑左移(Logical Shift Left)。寄存器中字的低端空出的位补0。 ·LSR:逻辑右移(Logical Shift Right)。寄存器中字的高端空出的位补0。 ·ASR:算术右移(Arithmetic Shift Right)。算术移位的对象是带符号数,在移位过程中必须保持操作数的符号不变。若源操作数为正数,则字的高端空出的位补0。若源操作数为负数,则字的高端空出的位补1。 ·ROR:循环右移(Rotate Right)。从字的最低端移出的位填入字的高端空出的位。 ·RRX:扩展为1的循环右移(Rotate Right Extended by 1 place)。操作数右移一位,空位(位[31])用原C标志填充。 移位操作 在任何数据处理指令中,第二寄存器操作数可以有应用该操作数的移位操作. 逻辑移位 LSL:逻辑左移字的最小位空位清零 LSR:逻辑右移字的最大位空位清零. 移位操作 (cont’d) 算术移位 ASR: 正数的ASR= LSR 循环移位: ROR, RRX 2.5 变址寻址 变址寻址就是将基址寄存器的内容与指令中给出的位移量相加,形成操作数有效地址。变址寻址用于访问基址附近的存储单元,包括: 基址加偏移 基址加索引寻址。 寄存器间接寻址是偏移量为0的基址加偏移寻址。 基址加偏移寻址中的基址寄存器包含地址,需加(或减)(最大4 KB)的偏移来计算访问的地址。 LDR R0,[R1,#4] ; R0 =[R1+4] 这是前索引寻址方式。 带自动索引的前索引寻址。 LDR R0,[R1,#4]! ; R0= [R1+4] ; R1 =R1+4 “!”符号表明指令在完成数据传送后应该更新基址寄存器 后索引寻址。基址不带偏移作为传送的地址,传送后自动索引。 LDR R0,[R
您可能关注的文档
最近下载
- 华为培训教材存储产品概论.ppt
- Q31 0115000140C043_立邦反射隔热涂料.pdf VIP
- 首届智能用电运营工技能竞赛理论考试题库-下(多选、判断题汇总).docx VIP
- 《输配电及用电工程》理论考试题库-下(多选、判断题汇总).docx VIP
- 《经皮去肾交感神经术治疗高血压专家建议2025》解读.pptx VIP
- 公立医院经济管理年活动自评报告三.docx VIP
- 关于深入推进移风易俗工作的通知.doc VIP
- 普通高中通用技术学生设计作品图文材料.pdf VIP
- 2024年《输配电及用电工程》理论考试题库(浓缩400题).docx VIP
- 考研英语2005年-2018年英语二答案.docx VIP
文档评论(0)