Assembly Language IF ELSE

From TRCCompSci - AQA Computer Science
Revision as of 13:17, 21 January 2020 by Admin (talk | contribs) (Assembly Version)
Jump to: navigation, search

C# example

int y = 0;
int x = 0;
if (y == 10)
{
    x = 9;
}
else
{
    y++
}

Assembly Version

   MOV R0, #0
   MOV R1, #0
   CMP R0, #10
   BNE .else
   MOV R1, #9
   B .endif
.else
   ADD R0, R0, #1
.endif


Line 1 sets the value of Register 0 to the value 0.
Line 2 sets the value of Register 1 to the value 0.
Line 3 compares the value in Register 0 with the value 10.
Line 4 will branch to the .else label if the previous compare was NOT EQUAL.
Line 5 will move the value 9 into Register 1.
Line 6 will branch always to the .endif label.
Line 7 is a label called .else and is used in a branch.
Line 8 will add together the value 1 with the current value in Register 0, the output will be stored back in Register 0.