Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. .globl sum
  2. # C-signatur:int sum ()
  3.  
  4. # 64 bit assembly
  5.  
  6. # b = byte (8 bit)
  7. # w = word (16 bit, 2 bytes)
  8. # l = long (32 bit, 4 bytes)
  9. # q = quad (64 bit, 8 bytes)
  10.  
  11.  
  12. # Opprinnelige 16bits registere: ax, bx, cx, dx
  13. # ah, al 8 bit
  14. # ax 16 bit
  15. # eax 32 bit
  16. # rax 64 bit
  17.  
  18. sum: # Standard
  19.  
  20. mov $2, %rcx # 3 -> rcx, maks i løkke
  21. mov $1, %rdx # 1 -> rdx, tallet i økes med for hver runde
  22. mov $0, %rbx # 0 -> rbx, variabelen i lagres i rbx
  23. mov $0, %rax # 0 -> rax, summen = S
  24. mov $2, %rdi
  25.  
  26. # løkke
  27. start: # label
  28. add %rdx, %rbx # rbx = rbx + rdx (i++)
  29. add %rdi, %rax # rax = rax + rdi (S = S + 2)
  30. cmp %rcx, %rbx # compare, er i = 3?
  31. jne start # Jump Not Equal til start:
  32.  
  33. ret # Verdien i rax returneres
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement