目录 Cortex-M3指令集简介 汇编语言基础 数据传输指令 数据处理指令 条件转移指令 些有用的新指令 子过程 内积计算 卷积计算
目录 • Cortex-M3指令集简介 • 汇编语言基础 • 数据传输指令 • 数据处理指令 • 条件转移指令 • 一些有用的新指令 • 子过程 • 内积计算 • 卷积计算
数据传输指令 处理器的最基本功能就是数据传输。 Cortex-M3中的数 据传输类型包括: 两个寄存器之间的数据传输 寄存器与存储器之间的数据传输 寄存器与特殊功能寄存器之间的数据传输 将一个立即数加载到寄存器 寄存器间数据传输的指令是MOV。比如将R3中的数据传 输给R8,则写为: MOV R8, R3
数据传输指令 处理器的最基本功能就是数据传输。Cortex-M3中的数 据传输类型包括: • 两个寄存器之间的数据传输 • 寄存器与存储器之间的数据传输 • 寄存器与特殊功能寄存器之间的数据传输 • 将一个立即数加载到寄存器 寄存器间数据传输的指令是MOV。比如将R3中的数据传 输给R8,则写为: MOV R8, R3
数据传输指令 MOV的一个行生物是MVN,它是将寄存器中的内容取 反后再传送,例如: MOVR0,#0×01;将立即数0X1存入R0 MNNR1,R0R1的值为R0的取反, 即为0 XFFFFFFR 用于访问内部存储器的基础指令是“加载(LOAD)”和 “存储( STORE)”。加载指令LDR把存储器中的内容加 载到寄存器中,存储指令STR则把寄存器的内容存储至存储 器中,传送过程中的数据类型可以变通,最常用的格式有
数据传输指令 MOV的一个衍生物是MVN,它是将寄存器中的内容取 反后再传送,例如: MOV R0, #0x01 ;将立即数0x1存入R0 MVN R1, R0 ;R1的值为R0的取反, ;即为0xFFFFFFFE 用于访问内部存储器的基础指令是“加载(LOAD)”和 “存储(STORE)”。加载指令LDR把存储器中的内容加 载到寄存器中,存储指令STR则把寄存器的内容存储至存储 器中,传送过程中的数据类型可以变通,最常用的格式有:
数据传输指令 示例 功能描述 LDRB Rd,[Rn,#o£fset] 从地址Rn+fet处读取一个字节到Rd LDRH Rd, [Rn, #offset 从地址Rn+ offset处读取一个半字到Rd LDR Rd,[Bn,+fs从地址R+et处读取一个字到Rd ldrd Rd1,Rd2,Rn,#ofet从地址 Rn+offset处读取一个双字(64位整数)到Rd1(低 32位)和Rd2(高32位)中。 strb Rd, [Rn, #offset 把Rd中的低字节存储到地址Rn+ offset处 STRH Rd, [Rn #offset] 把Rd中的低半字存储到地址 Rn+offset处 STR Rd, [Rn, #offset] 把Rd中的低字存储到地址Rn+ offset处 10RDR,R2,(R,+t把a1(低321)和R2(高321位)表达的双字存储 到地址Rn+ offset处
数据传输指令
数据传输指令 还可以进行多字访问,指令如下: 示例 功能描述 LdMA Rd!,(寄存器列表} 从Rd处读取多个字。每读一个字后Rd自增一次,16 位宽度 STMIA Rd!,{寄存器列表} 存储多个字到Rd处。每存一个字后Rd自增一次,16 位宽度 LDMIA.WRd!,{寄存器列表} 从Rd处读取多个字。每读一个字后Rd自增一次,32 位宽度 工 dmdBw Rd!,{寄存器列表 从Rd处读取多个字。每读一个字前Rd自减一次,32 位宽度 STMIA W Rd!,(寄存器列表} 存储多个字到Rd处。每存一个字后Rd自增一次,32 位宽度 STMDB.WRd!,{寄存器列表 存储多个字到Rd处。每存一个字前Rd自减一次,32 位宽度
数据传输指令 还可以进行多字访问,指令如下: