commit 0b8e3bdd1d2ac3946c57a35727cbbebc40860ab9 Author: Wander_Lust Date: Thu May 21 05:23:29 2026 +0530 software diff --git a/10byteSwap.asm b/10byteSwap.asm new file mode 100644 index 0000000..981be54 --- /dev/null +++ b/10byteSwap.asm @@ -0,0 +1,22 @@ +PRESERVE8 +THUMB +AREA |.text|, CODE, READONLY +EXPORT __main + +__main + LDR R0, =0x20000000 + LDR R1, =0x20000100 + MOVS R2, #10 +swap_loop + LDRB R3, [R0] + LDRB R4, [R1] + STRB R4, [R0] + STRB R3, [R1] + ADDS R1,R1,#1 + ADDS R0,R0,#1 + SUBS R2,R2,#1 + BNE swap_loop +STOP + B STOP +END + diff --git a/bitExtractClear.asm b/bitExtractClear.asm new file mode 100644 index 0000000..c1b6273 --- /dev/null +++ b/bitExtractClear.asm @@ -0,0 +1,21 @@ +PRESERVE8 +THUMB +AREA |.text|, CODE, READONLY +EXPORT __main +__main + LDR R0,=0xFFC0FFFF + LSLS R0,R0,(#32-8-16) ;(32-W-P) + LSRS R0,R0,(#32-W) ;(32-W) + + LDR R0,=0XFFC0FFFF + MOVS R1, #16 ; #P + MOVS R2, #8 ;W + MOVS R3, #(32-8-16) ;(32-W-P) + + RORS R0,R0,R1 + LSRS R0,R0,R2 + RORS R0,R0,R3 +STOP + B STOP +END + diff --git a/factorial.asm b/factorial.asm new file mode 100644 index 0000000..3a01075 --- /dev/null +++ b/factorial.asm @@ -0,0 +1,18 @@ +PRESERVE8 +THUMB +AREA |.text|, CODE, READONLY +EXPORT main + +main + MOVS R6,#5 + MOVS R4,R6 + SUBS R4,R4,#1 +LOOP + MOVS R7,R4 + MULS R7,R6,R7 + MOVS R6,R7 + SUBS R4,R4,#1 + BNE LOOP +STOP + B STOP +END diff --git a/func.asm b/func.asm new file mode 100644 index 0000000..6b51ff3 --- /dev/null +++ b/func.asm @@ -0,0 +1,11 @@ +PRESERVE8 +THUMB +AREA |.text|, CODE, READONLY +EXPORT func +EXTERN func2 +__func + PUSH{LR} + MOVS R0, #5 + BL func2 + POP{PC} +END diff --git a/func2.asm b/func2.asm new file mode 100644 index 0000000..8e5204b --- /dev/null +++ b/func2.asm @@ -0,0 +1,8 @@ +PRESERVE8 +THUMB +AREA |.text|, CODE, READONLY +EXPORT func2 +func2 + MOVS R1, #5 + BX LR +END diff --git a/main.asm b/main.asm new file mode 100644 index 0000000..ad1a09f --- /dev/null +++ b/main.asm @@ -0,0 +1,12 @@ +PRESERVE8 +THUMB +AREA |.text|, CODE, READONLY +EXPORT __main +EXTERN func +__main + BL func + MOVS R0, #40 + NOP +STOP + B STOP +END diff --git a/pushPop.asm b/pushPop.asm new file mode 100644 index 0000000..dbfe4d7 --- /dev/null +++ b/pushPop.asm @@ -0,0 +1,17 @@ +PRESERVE8 +THUMB +AREA |.text|, CODE, READONLY +EXPORT __main + +__main + LDR R3,=0X20000100 + LDR R0,=0X20000050 + LDMIA R3!,{R1,R2} + + MOV SP, R0 + PUSH {R1,R2} + POP {R1,R2} +STOP + B STOP +END + diff --git a/switchCase.asm b/switchCase.asm new file mode 100644 index 0000000..9eabe59 --- /dev/null +++ b/switchCase.asm @@ -0,0 +1,39 @@ +PRESERVE8 +THUMB +AREA |.text|, CODE, READONLY +EXPORT __main +__main + LDR R0,= 0 + CMP R0, #3 + BHI default_case + MOVS R2, #4 + MULS R0,R0,R2 + LDR R1,= BranchTable + LDR R2, [R1,R0] + BX R2 + ALIGN 4 +BranchTable + DCD Dest0 + DCD Dest1 + DCD Dest2 + DCD Dest3 +default_case + stop + B stop +Dest0 + LDR R0, =10 + stop1 + B stop1 +Dest1 + LDR R0, =20 + stop2 + B stop2 +Dest2 + LDR R0, =30 + stop3 + B stop3 +Dest3 + LDR R0, =40 + stop4 + B stop4 +END