Eldoprano

Untitled

Jun 3rd, 2019
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         mov     R0, #4      ;Asignas el numero 4 al Registro 0 (En total hay 12 registros que puedes usar. Son basicamente variables)
  2.         mov     R1, #2      ;Asignas 2 al registro 1  ( ; es para comentar)
  3.         add     R2, R1, R0  ;sumas R1 + R0 y el resultado lo guardas en R2
  4.         b       resta       ;b significa "branch" y simplemente salta a donde le digas, en este caso a "resta"
  5.         add     R2, R2, #2  ;Esto no se ejecuta, porque el anterior comando saltó hacia resta
  6.        
  7. resta
  8.         sub     R0, R0, #0  ;Subtraccion. R0 = R0 - 2
  9.         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
  10.                             ;izquierda  al numero en r0. En decimal la operacion sería algo así: R0 = R0 * (2^n)   (En este caso, n = 2)
  11.         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
  12.         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
  13.         ADR     R0, resta       ;Esto nos devolvería la posición de "resta" en memoria, pero lo saltamos con la anterior operación
  14.        
  15. miau
  16.         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)"
  17.                             ;si el resultado es negativo activa la bandera "N(egative)". Si el resultado contiene más digitos de los que se pueden guardar, se
  18.                             ;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
  19.                             ;binario)   pues la bandera "(o)V(erflow)" se activa.
Add Comment
Please, Sign In to add comment