Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- lobal inc_thread
- section .data
- spinlock dd 0
- section .text
- align 8
- inc_thread:
- mov rsi, [rdi] ; value
- mov ecx, [rdi + 8] ; count
- mov rdx, spinlock
- mov ebx, 1
- jmp count_test
- count_loop:
- busy_wait:
- xor eax, eax
- lock \
- cmpxchg [rdx], ebx
- jnz busy_wait
- inc dword [rsi] ; ++*value
- mov dword [rdx], eax
- count_test:
- sub ecx, 1 ; --count
- jge count_loop ; skok, gdy count >= 0
- xor eax, eax ; return NULL
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement