My Project
Loading...
Searching...
No Matches
C_lib
include_printf
az_putchar.c
Go to the documentation of this file.
1
// kernel_lib_printf_functions
2
/*
3
* Kernel Lib Printf Functions
4
*
5
* Maintainer: Park Jiwoo
6
*
7
* Copyright (C) 2024 Park-Jiwoo
8
*
9
*/
10
#include "
kernel_pr_he.h
"
11
#include <unistd.h>
12
13
void
kernel_putchar
(
char
c)
14
{
15
write(1, &c, 1);
16
}
17
18
19
// 인라인 어셈블리언어.
20
// 인텔전용 어셈블리 문법임.
21
// 맥에선 돌아가지 않기 때문에 이 부분은 주석 처리.
22
// ---- Intel Assembly
23
// -----------------------------------------------------------
24
// void az_putchar(char c)
25
// {
26
// int dword_char;
27
// dword_char = (char)c;
28
29
// asm volatile(
30
// ".intel_syntax noprefix;"
31
// "mov r10,rsp;" // save rsp.
32
// "sub rsp,8;" // space for buffer, align by 8.
33
// "mov [rsp],al;" // store the character into buffer.
34
// "mov edi,1;" // STDOUT.
35
// "mov rsi,rsp;" // pointer to buffer.
36
// "mov edx,1;" // string length in bytes.
37
// "mov eax,1;" // WRITE.
38
// "syscall;" // clobbers rcx & r11.
39
// "mov rsp,r10;" // restore rsp.
40
// ".att_syntax prefix;"
41
// /* outputs */
42
// :
43
// /* inputs: eax */
44
// : "b"(dword_char)
45
// /* clobbered regs */
46
// : "rcx", "rdx", "rsi", "rdi", "r10", "r11");
47
// }
kernel_putchar
void kernel_putchar(char c)
Definition
az_putchar.c:13
kernel_pr_he.h
Generated by
1.12.0