global add
global bit_and
global bit_or
global bit_xor

section .text
add:
	mov eax, edi	;first argument
	mov ebx, esi	;second argument
	add eax, ebx
	ret

bit_and:
	mov eax, edi	;first argument
	mov ebx, esi	;second argument
	and eax, ebx
	ret

bit_or:
	mov eax, edi
	mov ebx, esi
	or eax, ebx
	ret

bit_xor:
	mov eax, edi
	mov ebx, esi
	xor eax, ebx
	ret

;x86_64 UNIX systems passes the 
;first argument goes to rdi/edi
;second argument goes to rsi esi

section .note.GNU-stack noalloc noexec nowrite progbits
;this is for the linker
;just says we do not need an executable stack
