Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
dbow
V2EX  ›  Linux

分享 Linux 64 位汇编, timeit.asm 给需要的人.

  •  3
     
  •   dbow ·
    maliubiao · Nov 13, 2014 · 4256 views
    This topic created in 4211 days ago, the information mentioned may be changed or developed.
    上一贴用了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
    Supplement 1  ·  Nov 13, 2014
    劳驾回复一下,光收藏贴子很快就沉了, 为了让更多需要的人看到。
    8 replies    2014-11-16 14:38:14 +08:00
    Earthman
        1
    Earthman  
       Nov 13, 2014   ❤️ 1
    恩,我来帮顶
    其实贴gist也没事,一般来说都能看到的
    nevernet
        2
    nevernet  
       Nov 13, 2014   ❤️ 1
    看不懂的怎么破?
    dbow
        3
    dbow  
    OP
       Nov 13, 2014
    @nevernet 不懂C破不了。
    karllrak
        4
    karllrak  
       Nov 13, 2014   ❤️ 1
    我当时猜中了,cpuburn 就是用汇编写的.
    reverland
        5
    reverland  
       Nov 15, 2014
    弱问:

    yasm,gas,nasm这些语法是不是不太一样
    dbow
        6
    dbow  
    OP
       Nov 15, 2014
    @reverland 推荐用yasm, 它完全兼容gas, nasm。 gas, nasm稍微有些不同, 比如表示src, dst的顺序相反
    reverland
        7
    reverland  
       Nov 16, 2014
    @dbow 谢谢,其实想问……global, _start这些东西……应该是assembler特异?
    dbow
        8
    dbow  
    OP
       Nov 16, 2014   ❤️ 1
    @reverland nasm 里global表示对外公开的符号, gas写里作globl, 汇编器语法的差异容易克服, 基本不影响写代码, 可以轻松转换。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2559 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 16:01 · PVG 00:01 · LAX 09:01 · JFK 12:01
    ♥ Do have faith in what you're doing.