summaryrefslogtreecommitdiff
path: root/kvm/test/x86/print.S
blob: c1b1c0d7c250ddbbb91c3b84c88e0a47958351a5 (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

#include "print.h"

#define PSEUDO_SERIAL_PORT 0xf1

	
.text
	PRINT "boo"
	hlt
1:	jmp 1b
	
.globl print
print:
	push %rax
	push %rsi
	push %rdx

	mov %rdi, %rsi
	mov $(PSEUDO_SERIAL_PORT), %edx

putchar:
	cmpb $0, (%rsi)
	jz done
	outsb
	jmp putchar
done:
	
	pop %rdx
	pop %rsi
	pop %rax
	ret