======================================================== Strong ARM (SA1110) Opcodes for pocket pcs ======================================================== Command Hex Example -------------------------------------------------------------------------------------------------------- B xxxxxxEA branch BEQ xxxxxx0A b if zero (Z) BNE xxxxxx1A b if not equal (-Z) BGE xxxxxxAA b if greater or equal (N*V/-N*-V) BHI xxxxxx8A b if higher (-C*-Z) BLT xxxxxxBA b if less than (N*-V/-N*V) BCC xxxxxx3A b if carry clear BCS xxxxxx2A b if carry set BVC . BVS . BPL xxxxxx5A BMI xxxxxx4A b if negative, set N BHS . BLO . BLS xxxxxx9A b if lower or same (C/Z) BGT xxxxxxCA b if greater than (N*V*-Z/-N*-V*-Z) BLE xxxxxxDA b if less or equal (Z/N*-V/-N*V) 00022714 B loc_22734 06 00 00 EA 000226B8 BLE loc_226E4 09 00 00 DA -------------------------------------------------------------------------------------------------------- BL xxxx00EB BLEQ xxxx000B -------------------------------------------------------------------------------------------------------- MOV (reg,value) xxxxA0E3 Mov R1,#0 0010A0E3 Mov R0,#1 0100A0E3 MOVEQ (reg,value) xxxxA003 Moveq R5, #0 0050A003 MOVNE (reg,value) xxxxA013 MOVGE (reg,value) xxxxA0A3 MOVHI (reg,value) xxxxA083 -------------------------------------------------------------------------------------------------------- MOV (reg,reg) xxxxA0E1 Mov R4,R0 0040A0E1 Mov R7,R1 0170A0E1 MOVEQ (reg,reg) xxxxA001 MOVNE (reg,reg) xxxxA011 MOVS R10, R11,ASR#31 CB AF B0 E1 MOVS R11, R1,ASR#31 C1 BF B0 E1 -------------------------------------------------------------------------------------------------------- CMP (reg,val) 00 00 53 E3 CMP R0,#0 00 00 50 E3 CMP R5,#0 00 00 55 E3 CMPEQ R3,#1 01 00 53 03 -------------------------------------------------------------------------------------------------------- CMP (reg,reg) xx xx 5X E1 CMP R0,R3 03 00 50 E1 -------------------------------------------------------------------------------------------------------- LDR R0,[R1,#0x38] 38 00 91 E5 LDR R0,[R5] 00 00 95 E5 LDR R2, [R3] 00 20 93 E5 LDR R1, [R6] 00 10 96 E5 LDRB R2,[R0,#2] 02 20 D0 E5 LDRSH R1, [R6,#0x54] F4 15 D6 E1 LDRSH R1, [R6,#0x56] F6 15 D6 E1 LDRSB R3, [SP,#2] D2 30 DD E1 -------------------------------------------------------------------------------------------------------- STR R0,[R7] 00 00 87 E5 STRB R1,[R0,R3] 03 10 C0 E7 STRB R11,[LR] 00 B0 CE E5 STRB R11,[LR,#1] 01 B0 CE E5 STRH R3, [R4,#0xC] BC 30 C4 E1 STRH R3, [R4,#0xE] BE 30 C4 E1 STRH R3, [R1] B0 30 C1 E1 -------------------------------------------------------------------------------------------------------- ORR R3,R3,#0xC 0C 30 83 E3 ORR R3,R3,#0x3C 3C 30 83 E3 ORRS R1, R1, #0x80 80 10 91 E3 ORRS R3, R2, R3,LSL#8 03 34 92 E1 ORRS R5, R2, R3,LSL#8 03 54 92 E1 -------------------------------------------------------------------------------------------------------- ADD R3, R2, R3 03 30 82 E0 ADD R2, R2, #1 01 20 82 E2 ADD R1, R1, #4 04 10 81 E2 ADD SP, SP, #4 04 D0 8D E2 -------------------------------------------------------------------------------------------------------- SUB SP, SP, #0x38 38 D0 4D E2 SUB R3, R11, R0 00 30 4B E0 -------------------------------------------------------------------------------------------------------- ANDS R3, R10, #0xFF FF 30 1A E2 ANDS R3, R0, #0xFF FF 30 10 E2 AND R10, R9, R10 0A A0 09 E0 AND R10, R4, R10 0A A0 04 E0 AND R11, R11, #0xF8 F8 B0 0B E2 -------------------------------------------------------------------------------------------------------- MUL R11, R2, R4 92 04 0B E0 MUL R9, R11, R3 9B 03 09 E0 MUL R0, R2, R0 92 00 00 E0 -------------------------------------------------------------------------------------------------------- RSBMI R10, R1, #0 00 A0 61 42 RSBGT R6, R1, R4 04 60 61 C0 RSBMI R4, R2, #0 00 40 62 42 -------------------------------------------------------------------------------------------------------- RET 0EF0A0E1 --------------------------------------------------------------------------------------------------------