Guest User

Untitled

a guest
Jul 17th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. #puttime_asm
  2. .global puttime
  3. .text
  4.  
  5.  
  6. puttime:
  7. PUSH r16 #ser till så att vi kan använda r16
  8. PUSH r17 #ser till så att vi kan använda r17
  9. PUSH r18 #ser till så att vi kan använda r18
  10. PUSH r19 #ser till så att vi kan använda r19
  11. PUSH r20 #ser till så att vi kan använda r20
  12. PUSH r31 #ser till så att vi kan använda r31 för return
  13.  
  14. mov r16, r4 #r16-r23 kan man lite på att de inte blir ändrade
  15. movi r4, '\n' #sparar charen för newline i r4
  16. call putchar #printar newline
  17.  
  18. #inparametern på format: dddd cccc bbbb aaaa
  19.  
  20. #mov r17, r16 #kopierar originalinparametern
  21.  
  22. andi r18, r17, 0x000f #sparar 'aaaa' i r18
  23.  
  24. srai r19, r17, 4 #shiftar 'bbbb' längst åt höger
  25. andi r19, r19, 0x000f #sparar bara 'bbbb', nollställer de tre hexbitarna till vänster
  26.  
  27. srai r20, r17, 8 #skiftar bitarna 8 bitar åt höger, sparar 'cccc'
  28. andi r20, r20 0x000f #sparar bara 'cccc', nollställer de tre hexbitarna till vänster
  29.  
  30. srai r21, r17, 12 #skiftar bitarna 12 bitar åt höger
  31. andi r21,r21, 0x000f #sparar bara 'dddd', nollställer de tre hexbitarna till vänster
  32.  
  33. mov r4, r21 #sparar värdet i 'dddd' i r4 för att skicka det till hexasc
  34. call hexasc #gör om värdet i 'dddd' till ASCII, hexasc sparar i r2
  35. mov r4, r2 #flyttar returvärdet - ASCII-koden - till r4, redo för putchar
  36. call putchar #printar ASCII-tecknet till stdout
  37.  
  38. mov r4, r20 #sparar värdet i 'cccc' i r4 för att skicka det till hexasc
  39. call hexasc #gör om värdet i 'cccc' till ASCII, hexasc sparar i r2
  40. mov r4, r2 #flyttar returvärdet - ASCII-koden - till r4, redo för putchar
  41. call putchar #printar ASCII-tecknet till stdout
  42.  
  43. movi r4, 0x3A #lagrar ASCII-koden för tecknet ":"
  44. call putchar #printar ASCII-tecknet ":" till stdout
  45.  
  46. mov r4, r19 #sparar värdet i 'bbbb' i r4 för att skicka det till hexasc
  47. call hexasc #gör om värdet i 'bbbb' till ASCII, hexasc sparar i r2
  48. mov r4, r2 #flyttar returvärdet - ASCII-koden - till r4, redo för putchar
  49. call putchar #printar ASCII-tecknet till stdout
  50.  
  51. mov r4, r18 #sparar värdet i 'aaaa' i r4 för att skicka det till hexasc
  52. call hexasc #gör om värdet i 'aaaa' till ASCII, hexasc sparar i r2
  53. mov r4, r2 #flyttar returvärdet - ASCII-koden - till r4, redo för putchar
  54. call putchar #printar ASCII-tecknet till stdout
  55.  
  56. POP r31
  57. POP r20
  58. POP r19
  59. POP r18
  60. POP r17
  61. POP r16
  62.  
  63. ret #exits the program
  64.  
  65. .end
Add Comment
Please, Sign In to add comment