4000336002

中公优就业it培训学校太原校区

太原杏花岭区嵌入式开发培训机构哪家好

来源:中公优就业it培训学校太原校区 发布时间:2023/9/22 15:25:43

     太原杏花岭区嵌入式开发培训机构哪家好  .小编程推荐中公优就业.优就业是中公教育IT培训品牌,致力于培养面向电商及互联网领域的人才,以学员就业为目的,优质就业为宗旨,是一家集网络营销师,ui合计师,SEO优化师,SEM竞价师,社会化媒体运营师,电商运营师,互联网产品经理,网页设计师,Web前端工程师,PHP工程师,Android工程师,IOS工程师,Java工程师,C/C++工程师,软件测试工程师等课程为一体的IT培训机构

  Arm处理器是基于精简指令集计算机(RISC)原理设计的,指令集和相关译码机制较为简单,具有32位Arm指令集和16位Thumb指令集,Arm指令集效率高,但是代码密度低,而Thumb指令集具有更好的代码密度,却仍然保持Arm的大多数性能上的优势,它是Arm指令集的子集。所有Arm指令都是可以有条件执行的,而Thumb指令仅有一条指令具备条件执行功能。Arm程序和Thumb程序可相互调用,相互之间的状态切换开销几乎为零。

  Cortex-M0处理器基于ARMv6-M架构,是一款功耗和性能较为均衡的处理器。Cortex-M0只支持56条指令的小指令集,其中大部分指令是16位指令。

  Arm Cortex-M 指令集对比:

  db60bce8-d57d-11ec-bce3-dac502259ad0.png

  1. 指令集

  1.1 在处理器内移动数据

  MOV,;RmandRncanbehighorlowregisters. MOVS, MOVS,#immed8;8位立即数值 MRS, MSR,

  1.2 存储器访问

  确保访问的内存地址是对齐的,这一点很重要。在ARMv6-M架构(包括Cortex-M0和Cortex-M0处理器)上不支持非对齐传输。任何未对齐内存访问的尝试都会导致HardFault异常。

  LDR,[,];Rt=memory[Rn+Rm] STR,[,];memory[Rn+Rm]=Rt LDRH,[,];Rt=memory[Rn+Rm] STRH,[,];memory[Rn+Rm]=Rt LDRB,[,];Rt=memory[Rn+Rm] STRB,[,];memory[Rn+Rm]=Rt LDRSH,[,];Rt=SignExtend(memory[Rn+Rm]) LDRSB,[,];Rt=SignExtend(memory[Rn+Rm]) LDR,[,#immed5];Rt=memory[Rn+ZeroExtend(#immed5<<2)] STR  ,[,#immed5];memory[Rn+ZeroExtend(#immed5<<2)] = Rt LDRH ,[,#immed5];Rt=memory[Rn+ZeroExtend(#immed5<<1)] STRH ,[,#immed5];memory[Rn+ZeroExtend(#immed5<<1)] = Rt LDRB ,[,#immed5];Rt=memory[Rn+ZeroExtend(#immed5)]STRB,[,#immed5];memory[Rn+ZeroExtend(#immed5)]=Rt LDR,[SP,#immed8];Rt=memory[SP+ZeroExtend(#immed8<<2)] STR  ,[SP,#immed8];memory[SP+ZeroExtend(#immed8<<2)] = Rt LDR  ,[PC,#immed8];Rt=memory[WordAligned(PC+4)+ZeroExtend(#immed8<<2)] LDR  ,=immed32;pseudoinstructiontranslatedtoLDR,[PC,#immed8] LDR,label;pseudoinstructiontranslatedtoLDR,[PC,#immed8] LDM,{,,..};LoadMultiple //Ra=memory[Rn] //Rb=memory[Rn+4], //... LDMIA!,{,,..};LoadMultipleIncrementAfter LDMFD!,{,,..} //Ra=memory[Rn], //Rb=memory[Rn+4], //... //andthenupdateRntolastreadaddressplus4. STMIA!,{,,..};StoreMultipleIncrementAfter STMEA!,{,,..} //memory[Rn]=Ra, //memory[Rn+4]=Rb, //... //andthenupdateRntolaststoreaddressplus4.

  1.3 栈空间访问

  PUSH{,,..} PUSH{,,..,LR} POP{,,..} POP{,,..,PC}

  1.4 算数运算

  ADD,;Rd=Rd+Rm.Rd,Rmcanbehighorlowregisters. ADDS,,;Rd=Rn+Rm SUBS,,;Rd=Rn–Rm ADDS,,#immed3;Rd=Rn+ZeroExtend(#immed3) SUBS,,#immed3;Rd=Rn–ZeroExtend(#immed3) ADDS,#immed8;Rd=Rd+ZeroExtend(#immed8) SUBS,#immed8;Rd=Rd–ZeroExtend(#immed8) ADCS,,;Rd=Rd+Rm+Carry SBCS,,;Rd=Rd–Rm–Borrow ADDSP,SP,#immed7;SP=SP+ZeroExtend(#immed7<<2) SUB  SP, SP, #immed7     ; SP = SP – ZeroExtend(#immed7<<2) ADD  SP, ;SP=SP+Rm.Rmcanbehighorlowregister. ADD,SP,;Rd=Rd+SP.Rdcanbehighorlowregister. ADD,SP,#immed8;Rd=SP+ZeroExtend(#immed8<<2) ADD  ,PC,#immed8;Rd=(PC[31:2]<<2) + ZeroExtend(#immed8<<2) ADR  ,;pseudoinstructiontranslatedtoADD,PC,#immed8 RSBS,,#0;Rd=0–Rm,ReverseSubtract(negative) MULS,,;Rd=Rd*Rm CMP,#immed8;Rd–ZeroExtended(#immed8) CMP,;Rn–Rm CMN,;Rn–NEG(Rm)

  1.5 逻辑运算

  ANDS,,;Rd=AND(Rd,Rm) ORRS,,;Rd=OR(Rd,Rm) EORS,,;Rd=XOR(Rd,Rm) BICS,,;Rd=AND(Rd,NOT(Rm)) MVNS,;Rd=NOT(Rm) TST,;AND(Rn,Rm)

  1.6 移位和循环操作

  ASRS,,#immed5;Rd=Rm>>immed5 LSLS,,#immed5;Rd=Rm<<#immed5 lsrs="" rd="Rm">>#immed5ASRS,,;Rd=Rd>>Rm LSLS,,;Rd=Rd<,,;rd=rd>>RmRORS,,;Rd=RdrotaterightbyRmbits //Rotate_Left(Data,offset)=Rotate_Right(Data,(32-offset))

  1.7 展开和顺序反转操作

  这些反向指令通常用于在小端和之间转换数据大整数。

  REV,;Byte-ReverseWord //Rd={Rm[7:0],Rm[15:8],Rm[23:16],Rm[31:24]} REV16,;Byte-ReversePackedHalfWord //Rd={Rm[23:16],Rm[31:24],Rm[7:0],Rm[15:8]} REVSH,;Byte-ReverseSignedHalfWord //Rd=SignExtend({Rm[7:0],Rm[15:8]})

领取试听课
每天限量名额,先到先得
温馨提示:为不影响您的学业,来校区前请先电话或QQ咨询,方便我校安排相关的专业老师为您解答
  • 详情请进入 中公优就业it培训学...

关于我们 | 招生信息 | 新闻中心 | 学校动态

版权所有:搜学搜课(www.soxsok.com)