Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mov R0, #4 ;Asignas el numero 4 al Registro 0 (En total hay 12 registros que puedes usar. Son basicamente variables)
- mov R1, #2 ;Asignas 2 al registro 1 ( ; es para comentar)
- add R2, R1, R0 ;sumas R1 + R0 y el resultado lo guardas en R2
- b resta ;b significa "branch" y simplemente salta a donde le digas, en este caso a "resta"
- add R2, R2, #2 ;Esto no se ejecuta, porque el anterior comando saltó hacia resta
- resta
- sub R0, R0, #0 ;Subtraccion. R0 = R0 - 2
- lsl R0, R0, #2 ;"Logical Shift Left" Esto... Pues todas las operaciones se realizan en binario, así que lo que esto hace es mover 2 posiciones a la
- ;izquierda al numero en r0. En decimal la operacion sería algo así: R0 = R0 * (2^n) (En este caso, n = 2)
- cmp R0, #17 ;En el mundo binario, esto es un "R0 - #16", y si la resta es igual a 0 significa que son iguales. Así que la bandera "Z" se activa
- beq miau ;Ese "beq" no es más que un "b(ranch)eq(ual)". Lo que hace es que salta a la posición "miau" si la bandera "Z" esta activada
- ADR R0, resta ;Esto nos devolvería la posición de "resta" en memoria, pero lo saltamos con la anterior operación
- miau
- adds R0, R1, R1 ;Esto es un "add + s(et)" Suma R1 + R1 y guarda el valor en R0. A parte de eso, si el valor es 0, activa la bandera "Z(ero)"
- ;si el resultado es negativo activa la bandera "N(egative)". Si el resultado contiene más digitos de los que se pueden guardar, se
- ;activa la bandera "C(arry)". Si la suma da como resultado magicamente un numero negativo cuando no debería (cosas que pasan en el mundo
- ;binario) pues la bandera "(o)V(erflow)" se activa.
Add Comment
Please, Sign In to add comment