diff options
author | zedarider <ymherklotz@gmail.com> | 2016-02-26 21:40:24 +0000 |
---|---|---|
committer | zedarider <ymherklotz@gmail.com> | 2016-02-26 21:40:24 +0000 |
commit | 6d8f08b4727e5630e547d0afbf39c819a43945f6 (patch) | |
tree | 1f3fcb0185e339aa7cd7a14ece31c4fa474de9a1 /ARM_assembly/MultProject/test2.s | |
parent | 110c42733ff3decdb62bc4347626489a2677d99b (diff) | |
download | imperial_2015-6d8f08b4727e5630e547d0afbf39c819a43945f6.tar.gz imperial_2015-6d8f08b4727e5630e547d0afbf39c819a43945f6.zip |
Adding ARM Assembly files
Diffstat (limited to 'ARM_assembly/MultProject/test2.s')
-rw-r--r-- | ARM_assembly/MultProject/test2.s | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/ARM_assembly/MultProject/test2.s b/ARM_assembly/MultProject/test2.s new file mode 100644 index 0000000..8cdd69a --- /dev/null +++ b/ARM_assembly/MultProject/test2.s @@ -0,0 +1,174 @@ +AIN DCD 0X7FFFFFFF,0X0 +BIN DCD 0X7FFFFFFF,0X0 + ; DCD 0X1,0X3FFFFFFF,0X0,0X0 +OUT FILL 4*4 + + LDR R0, =AIN + LDR R1, =BIN + LDR R2, =OUT + BL SMUL64X64 + END + +SMUL64X64 STMED R13!, {R4-R12, LR} + LDR R3, [R0] + LDR R4, [R0, #4] + MOV R5, #0 + MOV R6, #0 + LDR R7, [R1] + LDR R8, [R1, #4] + MOV R10, #0 + MOV R11, #7 + AND R9, R3, #1 ;1 + CMP R9, R10 + BHI SU1 + BLO AD1 + B CONT1 +SU1 SUBS R5, R5, R7 + SBC R6, R6, R8 + B CONT1 +AD1 ADDS R5, R5, R7 + ADC R6, R6, R8 +CONT1 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 +MULT AND R9, R3, #1 ;2 + CMP R9, R10 + BHI SU2 + BLO AD2 + B CONT2 +SU2 SUBS R5, R5, R7 + SBC R6, R6, R8 + B CONT2 +AD2 ADDS R5, R5, R7 + ADC R6, R6, R8 +CONT2 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;3 + CMP R9, R10 + BHI SU3 + BLO AD3 + B CONT3 +SU3 SUBS R5, R5, R7 + SBC R6, R6, R8 + B CONT3 +AD3 ADDS R5, R5, R7 + ADC R6, R6, R8 +CONT3 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;4 + CMP R9, R10 + BHI SU4 + BLO AD4 + B CONT4 +SU4 SUBS R5, R5, R7 + SBC R6, R6, R8 + B CONT4 +AD4 ADDS R5, R5, R7 + ADC R6, R6, R8 +CONT4 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;5 + CMP R9, R10 + BHI SU5 + BLO AD5 + B CONT5 +SU5 SUBS R5, R5, R7 + SBC R6, R6, R8 + B CONT5 +AD5 ADDS R5, R5, R7 + ADC R6, R6, R8 +CONT5 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;6 + CMP R9, R10 + BHI SU6 + BLO AD6 + B CONT6 +SU6 SUBS R5, R5, R7 + SBC R6, R6, R8 + B CONT6 +AD6 ADDS R5, R5, R7 + ADC R6, R6, R8 +CONT6 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;7 + CMP R9, R10 + BHI SU7 + BLO AD7 + B CONT7 +SU7 SUBS R5, R5, R7 + SBC R6, R6, R8 + B CONT7 +AD7 ADDS R5, R5, R7 + ADC R6, R6, R8 +CONT7 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;8 + CMP R9, R10 + BHI SU8 + BLO AD8 + B CONT8 +SU8 SUBS R5, R5, R7 + SBC R6, R6, R8 + B CONT8 +AD8 ADDS R5, R5, R7 + ADC R6, R6, R8 +CONT8 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;9 + CMP R9, R10 + BHI SU9 + BLO AD9 + B CONT9 +SU9 SUBS R5, R5, R7 + SBC R6, R6, R8 + B CONT9 +AD9 ADDS R5, R5, R7 + ADC R6, R6, R8 +CONT9 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + AND R9, R3, #1 ;10 + CMP R9, R10 + BHI SU10 + BLO AD10 + B CONT10 +SU10 SUBS R5, R5, R7 + SBC R6, R6, R8 + B CONT10 +AD10 ADDS R5, R5, R7 + ADC R6, R6, R8 +CONT10 MOVS R6, R6, ASR #1 + MOVS R5, R5, RRX + MOVS R4, R4, RRX + MOVS R3, R3, RRX + MOV R10, R9 + SUBS R11, R11, #1 + BNE MULT + STMIA R2, {R3-R6} + LDMED R13!, {R4-R12, PC} |