Difference between revisions of "Assembly Language DO WHILE"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(Created page with "==C# example== <syntaxhighlight lang=csharp> int a = 0; do { a++ } while ( A != 99); </syntaxhighlight> ==Assembly Version== LDR R0, #0 .loop ADD R0, R0, #1...")
 
(Assembly Version)
Line 11: Line 11:
 
==Assembly Version==
 
==Assembly Version==
  
     LDR R0, #0
+
     MOV R0, #0
 
  .loop
 
  .loop
 
     ADD R0, R0, #1
 
     ADD R0, R0, #1

Revision as of 12:38, 7 February 2018

C# example

int a = 0;
do
{
    a++
}
while ( A != 99);

Assembly Version

   MOV R0, #0
.loop
   ADD R0, R0, #1
   CMP R0, #99
   BNE .loop

Line 1 sets the value of Register 0 to the value 0.
Line 2 is a label which will be used to branch too.
Line 3 adds the value 1 to the current value in Register 0 and stores the value back into Register 0.
Line 4 compares the value in Register 0 with the value 99.
Line 5 will branch to the .loop label if the previous compare was NOT EQUAL.