网站大量收购闲置独家精品文档,联系QQ:2885784924

ARM语法教程.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM语法教程

ARM基础语法 By:陈殷齐 ARM工作模式: ARM寄存器: CPSR寄存器: 基本指令格式: opcode{cond}{s} Rd,Rn,{oprand2} Opcode:助记符 Cond:条件码 S:影响标志位 Oprand2:第二操作数,必须为常数表达式或#immed_8r(通过循环右移偶数位可得的8位数) 寻址方式: 寄存器寻址:数据存放在寄存器中 MOV R1,R2;(将R2的数据存放到R1中) SUB R1,R2,R3;(将R2-R3装入R1中) 立即数寻址:数据包含在指令中 MOV R0,#0XFF;(将OXFF装入R0中) SUB R0,R1,#1;(R1-1装入R0中) 寄存器移位寻址: MOV R0,R2,LSL,#3;(将R2左移3位装入R0中) 寄存器间接寻址:寄存器给出操作数地址码(基址) LDR R2,[R1];(将R1所存地址中的操作数装入R2) 基址加偏址(前变址模式/不改基址的寄存器值): 基址加偏址:LDR R1,[R3,#0X0C];(R3+OX0C的地址里操作数加载到R1) 偏置为寄存器:LDR R1,[R2,R3];(R3+R2的地址里操作数加载到R1) 加上位移操作:LDR R1,[R2,R3,LSL,#2];(R3左移2位加上R2的地址加载到R1) 后索引方式(改变基址值) LDR R0,[R1],#4;(R1地址的操作数装入R1之后,R1=R1加4) 自动变址:LDR R0,[R1,#2]! (R1+2后的地址值里的操作数装入R0,R1=R1+2) LDR R0,[R1];将R1所存地址里的操作数装载到R0。 STR R0,[R1];将R0所存操作数加载到R1地址里的单元。 []不能省略。 多寄存器操作: 寄存器和内存交换指令: 运算指令: 跳转指令:(分支指令) BX 由寄存器的最后一位决定使用Thumb还是ARM指令。(1为Thumb) 例 BX R1,into+1;跳转到into并切换为Thumb指令 Label为标号,或地址。(start,0 psr指CPSR,SPSR. SWI在用户模式时跳转来切换到特权模式。 进入管理模式后再中断向量表找到immed_24地址所指向的中断程序。 用户模式下只可读控制域和状态域,用MSR也不可以修改。(既不能改变状态域来切换模式,特权模式下可以) 用户模式下可对标志位进行修改。 T位所有模式都不可修改,只有用BX可修改。 伪指令: ADR:将基于PC或寄存器的相对偏移的地址值读取到寄存器。 LDR:将数值直接装入。 NOP:空指令。 伪操作符: 填充伪操作符: APTCS协议: 在汇编中调用C语言: ??C语言中调用汇编程序: .global Factorial 内嵌汇编:

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档