使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
wuqi+原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”
分别使用 库函数API 和 嵌入式汇编 实现time系统调用
| 库函数的方法 | 嵌入式汇编 |
#include <stdio.h> #include <time.h> int main() { time_t tt; struct tm *t; tt = time(NULL); t = localtime(&tt); printf("date:%d:%d:%d\n",t->tm_year,t->tm_mon,t->tm_mday); printf("time:%d:%d:%d\n",t->tm_hour,t->tm_min,t->tm_sec); return 0; }
|
#include <stdio.h> #include <time.h> int main() { time_t tt; struct tm *t; // tt = time(NULL); asm volatile( "mov $0,%%ebx\n\t" "mov $0xd,%%eax\n\t" "int $0x80\n\t" "mov %%eax,%0\n\t" :"=m"(tt) ); t = localtime(&tt); printf("date:%d:%d:%d\n",t->tm_year,t->tm_mon,t->tm_mday); printf("time:%d:%d:%d\n",t->tm_hour,t->tm_min,t->tm_sec); return 0; }
|
对比两部分程序,发现就是 系统调用time(NULL)和嵌入式汇编 的不同。
浙公网安备 33010602011771号