Skip to content

Instantly share code, notes, and snippets.

@stianeikeland
Last active August 29, 2015 14:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stianeikeland/11271089 to your computer and use it in GitHub Desktop.
Save stianeikeland/11271089 to your computer and use it in GitHub Desktop.
;;; Kompiler og kjoer med:
;;; nasm -f elf64 -F stabs kake.asm && gcc -o kake kake.o && ./kake
global main
extern printf
segment .data
formatert db 'Svaret er: %u!', 0Ah, 0h
segment .text
;;; ADD IF MULTIPLE
add_if_multiple:
xor rdx, rdx
mov rax, rcx
div rdi
cmp rdx, 0
jne add_if_multiple_exit
add rbx, rcx
add_if_multiple_exit:
ret
;;; MAIN ENTRY POINT
main:
mov rcx, 1000 ; itere fra 1000 til 0
xor rbx, rbx ; spar sum i rbx, tøm..
start_loop:
cmp rcx, 0
je loop_exit
dec rcx
mov rdi, 3 ; delelig på 3?
call add_if_multiple
cmp rdx, 0
je start_loop
mov rdi, 5 ; delelig på 5?
call add_if_multiple
jmp start_loop
loop_exit:
mov rsi, rbx
mov rdi, formatert ; Print, merk at 64 bit
call printf ; ikke bruker cdecl, men registre
mov rax, 0
ret ; ret fra main => exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment