本帖最后由 phoenixmy 于 2011-4-16 14:10 编辑
也不知道有人贴过没有,先占上位子吧
先上M0与M3的指令集比较图,一目了然
命令列表,详细请看下面附件文档的chapter3
Table 3.1. Cortex-M0 instructions
| Mnemonic | Operands | Brief description | Flags | See | | ADCS | {Rd,} Rn, Rm | Add with Carry | N,Z,C,V | ADC, ADD, RSB, SBC, and SUB | | ADD{S} | {Rd,} Rn, <Rm|#imm> | Add | N,Z,C,V | ADC, ADD, RSB, SBC, and SUB | | ADR | Rd, label | PC-relative Address to Register | - | ADR | | ANDS | {Rd,} Rn, Rm | Bitwise AND | N,Z | ADC, ADD, RSB, SBC, and SUB | | ASRS | {Rd,} Rm, <Rs|#imm> | Arithmetic Shift Right | N,Z,C | ASR, LSL, LSR, and ROR | | B{cc} | label | Branch {conditionally} | - | B, BL, BX, and BLX | | BICS | {Rd,} Rn, Rm | Bit Clear | N,Z | AND, ORR, EOR, and BIC | | BKPT | #imm | Breakpoint | - | BKPT | | BL | label | Branch with Link | - | B, BL, BX, and BLX | | BLX | Rm | Branch indirect with Link | - | B, BL, BX, and BLX | | BX | Rm | Branch indirect | - | B, BL, BX, and BLX | | CMN | Rn, Rm | Compare Negative | N,Z,C,V | CMP and CMN | | CMP | Rn, <Rm|#imm> | Compare | N,Z,C,V | CMP and CMN | | CPSID | i | Change Processor State, Disable Interrupts | - | CPS | | CPSIE | i | Change Processor State, Enable Interrupts | - | CPS | | DMB | - | Data Memory Barrier | - | DMB | | DSB | - | Data Synchronization Barrier | - | DSB | | EORS | {Rd,} Rn, Rm | Exclusive OR | N,Z | AND, ORR, EOR, and BIC | | ISB | - | Instruction Synchronization Barrier | - | ISB | | LDM | Rn{!}, reglist | Load Multiple registers, increment after | - | LDM and STM | | LDR | Rt, label | Load Register from PC-relative address | - | Memory access instructions | | LDR | Rt, [Rn, <Rm|#imm>] | Load Register with word | - | Memory access instructions | | LDRB | Rt, [Rn, <Rm|#imm>] | Load Register with byte | - | Memory access instructions | | LDRH | Rt, [Rn, <Rm|#imm>] | Load Register with halfword | - | Memory access instructions | | LDRSB | Rt, [Rn, <Rm|#imm>] | Load Register with signed byte | - | Memory access instructions | | LDRSH | Rt, [Rn, <Rm|#imm>] | Load Register with signed halfword | - | Memory access instructions | | LSLS | {Rd,} Rn, <Rs|#imm> | Logical Shift Left | N,Z,C | ASR, LSL, LSR, and ROR | | LSRS | {Rd,} Rn, <Rs|#imm> | Logical Shift Right | N,Z,C | ASR, LSL, LSR, and ROR | | MOV{S} | Rd, Rm | Move | N,Z | MOV and MVN | | MRS | Rd, spec_reg | Move to general register from special register | - | MRS | | MSR | spec_reg, Rm | Move to special register from general register | N,Z,C,V | MSR | | MULS | Rd,Rn, Rm | Multiply, 32-bit result | N,Z | MULS | | MVNS | Rd, Rm | Bitwise NOT | N,Z | MOV and MVN | | NOP | - | No Operation | - | NOP | | ORRS | {Rd,}Rn, Rm | Logical OR | N,Z | AND, ORR, EOR, and BIC | | POP | reglist | Pop registers from stack | - | PUSH and POP | | PUSH | reglist | Push registers onto stack | - | PUSH and POP | | REV | Rd, Rm | Byte-Reverse word | - | REV, REV16, and REVSH | | REV16 | Rd, Rm | Byte-Reverse packed halfwords | - | REV, REV16, and REVSH | | REVSH | Rd, Rm | Byte-Reverse signed halfword | - | REV, REV16, and REVSH | | RORS | {Rd,} Rn, Rs | Rotate Right | N,Z,C | ASR, LSL, LSR, and ROR | | RSBS | {Rd,}Rn, #0 | Reverse Subtract | N,Z,C,V | ADC, ADD, RSB, SBC, and SUB | | SBCS | {Rd,}Rn, Rm | Subtract with Carry | N,Z,C,V | ADC, ADD, RSB, SBC, and SUB | | SEV | - | Send Event | - | SEV | | STM | Rn!, reglist | Store Multiple registers, increment after | - | LDM and STM | | STR | Rt, [Rn, <Rm|#imm>] | Store Register as word | - | Memory access instructions | | STRB | Rt, [Rn, <Rm|#imm>] | Store Register as byte | - | Memory access instructions | | STRH | Rt, [Rn, <Rm|#imm>] | Store Register as halfword | - | Memory access instructions | | SUB{S} | {Rd,}Rn, <Rm|#imm> | Subtract | N,Z,C,V | ADC, ADD, RSB, SBC, and SUB | | SVC | #imm | Supervisor Call | - | SVC | | SXTB | Rd, Rm | Sign extend byte | - | SXT and UXT | | SXTH | Rd, Rm | Sign extend halfword | - | SXT and UXT | | TST | Rn, Rm | Logical AND based test | N,Z | TST | | UXTB | Rd, Rm | Zero extend a byte | - | SXT and UXT | | UXTH | Rd, Rm | Zero extend a halfword | - | SXT and UXT | | WFE | - | Wait For Event | - | WFE | | WFI | - | Wait For Interrupt | - | WFI |
|