分享 Linux 64 位汇编, timeit.asm 给需要的人.
上一贴用了Gist,Gist居然被墙了, 这次改用pastebin
这份代码演示了如何处理栈, 如何调用C库函数, 如何处理返回值, 如何写分支结构, 如何处理结构里的成员运算.
其中使用了gettimeofday, fork, execvp, wait, printf
编译 yasm -f elf64 -o timeit.o timeit.asm ; gcc -o timeit timeit.o
源码: http://pastebin.ubuntu.com/8978598/
@
lane0x 恩,我来帮顶
其实贴gist也没事,一般来说都能看到的
看不懂的怎么破?
不懂C破不了。
我当时猜中了,cpuburn 就是用汇编写的.
弱问:
yasm,gas,nasm这些语法是不是不太一样
推荐用yasm, 它完全兼容gas, nasm。 gas, nasm稍微有些不同, 比如表示src, dst的顺序相反
谢谢,其实想问……global, _start这些东西……应该是assembler特异?
nasm 里global表示对外公开的符号, gas写里作globl, 汇编器语法的差异容易克服, 基本不影响写代码, 可以轻松转换。