Difference between revisions of "Assembly Language IF"
(→Assembly Version 1) |
|||
Line 28: | Line 28: | ||
Line 6 is the .end label | Line 6 is the .end label | ||
− | ==Assembly Version | + | ==Assembly Version 2== |
LDR R0, #0 | LDR R0, #0 |
Revision as of 11:41, 20 December 2018
C# example
int y = 0;
int x = 0;
if (y == 10)
{
x = 9;
}
Assembly Version 1
LDR R0, #0 LDR R1, #0 CMP R0, #10 BNE .end MOV R1, #9 .end
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 .end label if the previous compare was NOT EQUAL.
Line 5 will move the value 9 into Register 1.
Line 6 is the .end label
Assembly Version 2
LDR R0, #0 LDR R1, #0 CMP R0, #10 BEQ .true B .end .true MOV R1, #9 .end
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 .true label if the previous compare was EQUAL.
Line 5 will branch to the .end
Line 6 is the label for the .true code
Line 7 will move the value 9 into Register 1.
Line 8 is the .end label