📄 libc.c
字号:
#include <libc.h>
int strlen(char *buf)
{
int i=0;
while(*buf++)
i++;
return i;
}
char *reverse(char *buf)
{
char k;
int i;
int len=strlen(buf)-1;
for(i=len;i>(len/2);i--)
{
k=buf[i];
buf[i]=buf[len-i];
buf[len-i]=k;
}
return buf;
}
char *itoa(int i,char *buf)
{
int j;
char *sp=buf;
do{
j=i%10;
i=i/10;
*sp++=j+'0';
}while(i!=0);
*sp='\0';
reverse(buf);
return buf;
}
char * strcpy (char *dest, const char *src)
{
char *h=dest;
while(*src)
*dest++ = *src++;
*dest='\0';
return h;
}
char * strcat (char *dest, const char *src)
{
char *h=dest;
char *snd;
while(*dest++);
snd=--dest;
strcpy(snd,src);
return h;
}
//////////////////////////////////////////
/* Do_IO */
//////////////////////////////////////////
void outportb(unsigned port, unsigned val)
{
__asm__ __volatile__("outb %b0,%w1"
:
: "a"(val), "d"(port));
}
unsigned inportb(unsigned short port)
{
unsigned char ret_val;
__asm__ __volatile__("inb %1,%0"
: "=a"(ret_val)
: "d"(port));
return ret_val;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -