summaryrefslogtreecommitdiff
path: root/kernel/usrbin/usrbin.s
blob: 91dd94a8a36e65cd2c4b2f985b10f9abf5571600 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
bits 32
org 0x100000

main:
  push .msg
  call puts
  add esp, 4
.loop:
  ; loop forever
  jmp .loop
.msg: db "Hello World from Userspace!", 0

puts:
  push ebp
  mov ebp, esp
  push esi
  push edi
  mov esi, [ebp+8]
  mov edi, 0xB8000
.loop:
  lodsb
  cmp al, 0
  je .end
  mov [edi], al
  mov byte [edi+1], 0x07
  add edi, 2
  jmp .loop
.end:
  pop edi
  pop esi
  pop ebp
  ret