昨天在家浏览了纽约大学的一个课件,找到一个例子,很有趣,我稍微修改了一下,支持32位和64位环境:如下。
以后该系列采用这样的模式,首篇只贴代码,续篇进行解释和分析,期间希望读者朋友能自己做实验。
理解该代码就算对rbp,rsp寄存器以及一些调用有了直接的接触。
里面有两个奇怪的数字17和23,这是为什么呢?续篇给予解答。
编译方法:
64位环境:
g++ -g test.cpp -o test_64 //64位代码
g++ -g -m32 test.cpp -o test_32 //32位代码
32位环境:
g++ -g test.cpp -o test_32
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/time.h>
int done = 0;
int thread1( void )