Guest User

Untitled

a guest
Jan 20th, 2025
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. section .data
  2. bulb_status db 0 ; trenutno stanje žarnice (0 = ne dela, 1 = dela)
  3. error_msg db "FATAL ERROR: BULB NOT RESPONDING", 0x0A
  4. success_msg db "BULB SUCCESSFULLY REPLACED", 0x0A
  5.  
  6. section .text
  7. global _start
  8.  
  9. _start:
  10. ; shrani registre na sklad
  11. push ebp
  12. mov ebp, esp
  13.  
  14. ; preveri stanje žarnice
  15. mov al, [bulb_status]
  16. test al, al
  17. jnz bulb_working ; če žarnica dela, skoči
  18.  
  19. change_bulb:
  20. ; poskusi zamenjati žarnico
  21. push eax ; shrani registre
  22. push ebx
  23. push ecx
  24.  
  25. mov eax, 0x1 ; sistemski klic za menjavo žarnice
  26. mov ebx, 0x2 ; port za žarnico
  27. int 0x80 ; prekini izvajanje
  28.  
  29. ; preveri rezultat
  30. cmp eax, 0
  31. jl error ; če je negativno, je prišlo do napake
  32.  
  33. ; nastavi novo stanje
  34. mov byte [bulb_status], 1
  35. jmp success
  36.  
  37. error:
  38. ; izpiši napako
  39. mov eax, 4 ; sistemski klic za izpis
  40. mov ebx, 1 ; stdout
  41. mov ecx, error_msg ; sporočilo
  42. mov edx, 32 ; dolžina
  43. int 0x80
  44. jmp exit
  45.  
  46. success:
  47. ; izpiši uspeh
  48. mov eax, 4
  49. mov ebx, 1
  50. mov ecx, success_msg
  51. mov edx, 24
  52. int 0x80
  53.  
  54. bulb_working:
  55. ; če žarnica dela, ne naredi nič
  56.  
  57. exit:
  58. ; pospravi sklad
  59. mov esp, ebp
  60. pop ebp
  61.  
  62. ; končaj program
  63. mov eax, 1
  64. xor ebx, ebx
  65. int 0x80
Advertisement
Add Comment
Please, Sign In to add comment