Difference between revisions of "Assembly Language IF ELSE"
(Created page with "==C# example== <syntaxhighlight lang=csharp> int y = 0; int x = 0; if (y == 10) { x = 9; } else { y++ } </syntaxhighlight> ==Assembly Version== LDR R0, #0 L...") |
|||
(One intermediate revision by the same user not shown) | |||
Line 16: | Line 16: | ||
==Assembly Version== | ==Assembly Version== | ||
− | + | MOV R0, #0 | |
− | + | MOV R1, #0 | |
CMP R0, #10 | CMP R0, #10 | ||
− | BNE | + | BNE else |
MOV R1, #9 | MOV R1, #9 | ||
− | B | + | B endif |
− | + | else: | |
ADD R0, R0, #1 | ADD R0, R0, #1 | ||
− | + | endif: | |
Latest revision as of 09:28, 22 January 2020
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.