Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- section .data
- bulb_status db 0 ; trenutno stanje žarnice (0 = ne dela, 1 = dela)
- error_msg db "FATAL ERROR: BULB NOT RESPONDING", 0x0A
- success_msg db "BULB SUCCESSFULLY REPLACED", 0x0A
- section .text
- global _start
- _start:
- ; shrani registre na sklad
- push ebp
- mov ebp, esp
- ; preveri stanje žarnice
- mov al, [bulb_status]
- test al, al
- jnz bulb_working ; če žarnica dela, skoči
- change_bulb:
- ; poskusi zamenjati žarnico
- push eax ; shrani registre
- push ebx
- push ecx
- mov eax, 0x1 ; sistemski klic za menjavo žarnice
- mov ebx, 0x2 ; port za žarnico
- int 0x80 ; prekini izvajanje
- ; preveri rezultat
- cmp eax, 0
- jl error ; če je negativno, je prišlo do napake
- ; nastavi novo stanje
- mov byte [bulb_status], 1
- jmp success
- error:
- ; izpiši napako
- mov eax, 4 ; sistemski klic za izpis
- mov ebx, 1 ; stdout
- mov ecx, error_msg ; sporočilo
- mov edx, 32 ; dolžina
- int 0x80
- jmp exit
- success:
- ; izpiši uspeh
- mov eax, 4
- mov ebx, 1
- mov ecx, success_msg
- mov edx, 24
- int 0x80
- bulb_working:
- ; če žarnica dela, ne naredi nič
- exit:
- ; pospravi sklad
- mov esp, ebp
- pop ebp
- ; končaj program
- mov eax, 1
- xor ebx, ebx
- int 0x80
Advertisement
Add Comment
Please, Sign In to add comment