33 lines
549 B
C
33 lines
549 B
C
|
char *dicks = "good bye world\n";
|
||
|
|
||
|
//totally not stolen
|
||
|
long unsigned int strlen(const char *str) {
|
||
|
long unsigned int len = 0;
|
||
|
while(str[len]) len++;
|
||
|
return len;
|
||
|
}
|
||
|
|
||
|
int puts(const char *aids) {
|
||
|
long unsigned int stringlength = strlen(dicks);
|
||
|
|
||
|
asm volatile (
|
||
|
"mov $1, %%rdi\n"
|
||
|
"mov $1, %%rax\n"
|
||
|
"syscall" :: "S"(aids), "d"(stringlength)
|
||
|
);
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
void _start(){
|
||
|
puts(dicks);
|
||
|
|
||
|
|
||
|
asm volatile (
|
||
|
"mov $60, %rax\n"
|
||
|
"mov $1, %rdi\n"
|
||
|
"syscall"
|
||
|
|
||
|
);
|
||
|
|
||
|
}
|