diff --git a/assignment_assembly/assignment2/rest_result.png b/assignment_assembly/assignment2/rest_result.png new file mode 100644 index 0000000..10aae71 Binary files /dev/null and b/assignment_assembly/assignment2/rest_result.png differ diff --git a/assignment_assembly/assignment3/multiply.asm b/assignment_assembly/assignment3/multiply.asm new file mode 100644 index 0000000..dc947c1 --- /dev/null +++ b/assignment_assembly/assignment3/multiply.asm @@ -0,0 +1,18 @@ + .cpu cortex-m4 + .thumb + .syntax unified + .globl multiply + .text + .thumb_func +multiply: + MOVS.N R2, #0 // set result to 0 + CMP.N R1, #0 + BEQ.N exit // goto exit if b == 0 +loop: + ADDS.N R2, R0, R2 // add a to result + SUBS.N R1, #1 // substract 1 from b + BEQ.N exit // goto exit if b == 0 + B.N loop // loop otherwise +exit: + MOVS.N R0, R2 // move result to R0 + BX.N LR diff --git a/assignment_assembly/readme.md b/assignment_assembly/readme.md index acdd1cd..30c7b2e 100644 --- a/assignment_assembly/readme.md +++ b/assignment_assembly/readme.md @@ -17,7 +17,7 @@ Er is een project gegeven die tegevoerd en getest moet worden. De eerste keer da Het opnieuw selecteeren van de OpenOCD debug probe in het 'Debug Configurations' venster werdt de linux variant corect ingesteld en werkte het. -Voor de zekerheid heb ik het nog een keer geprobeerd terwel ik alle weizigingen in het project bij hou ik git^[voor de geintreseerde heb ik de git repo op mijn server gezet waar de commit van de clock wiezigingen te vinden is met de volgende link (https://gitea.finnvanreenen.nl/FReenen/RTS10_assignment_clock_change/commit/4dcb59bc058b3a710a1ca471e4a5d007f64f344c)[https://gitea.finnvanreenen.nl/FReenen/RTS10_assignment_clock_change/commit/4dcb59bc058b3a710a1ca471e4a5d007f64f344c]]. Hier zag ik dat er wat clock instellingen werden geweiziged. Dus ik heb het opniew geprobeerd maar dat aleen het veld 'OpenOCD Command' aangepast in de debug configuratie. Met deze methode werden de klock instellingen niet aangepast, alleen een aantal dingen dat ik herken als de verschillen tussen Windows en Linux. +Voor de zekerheid heb ik het nog een keer geprobeerd terwel ik alle weizigingen in het project bij hou ik git^[voor de geintreseerde heb ik de git repo op mijn server gezet waar de commit van de clock wiezigingen te vinden is met de volgende link (https://gitea.finnvanreenen.nl/FReenen/RTS10_assignment_project_files/commit/4dcb59bc058b3a710a1ca471e4a5d007f64f344c)[https://gitea.finnvanreenen.nl/FReenen/RTS10_assignment_project_files/commit/4dcb59bc058b3a710a1ca471e4a5d007f64f344c]]. Hier zag ik dat er wat clock instellingen werden geweiziged. Dus ik heb het opniew geprobeerd maar dat aleen het veld 'OpenOCD Command' aangepast in de debug configuratie. Met deze methode werden de klock instellingen niet aangepast, alleen een aantal dingen dat ik herken als de verschillen tussen Windows en Linux. Hierna werken het nogsteed zoals verwacht. @@ -35,6 +35,10 @@ Dit is mijn implementatie: ![asambly implementatie van vermedigvuldiging](assignment2/multiply.asm) +En het test resultaat: + +![screenshot test resultaat](assignment2/rest_result.png) + ## A smarter tail recursive multiply algorithm