global _main extern _start _main: xor rbp, rbp call _start global _userspace _userspace: mov rdi, 4000 ; 4000 ms / 4 seconds int 33h ; Sleep mov rcx, 10 .loop: dec rcx mov rdi, .message int 32h ; Print string mov rdi, 200 ; 200 ms / 0.2 seconds int 33h ; Sleep cmp rcx, 0 jne .loop cli ; WE ARE IN RING 3!! So this should GPF and the kernel should exit us as "misbehaved" int 31h ; Exit current task .message: db "hello from userspace!", 0xA, 0