美文网首页
CSAPP阅读笔记-第三章:程序的机器级表示

CSAPP阅读笔记-第三章:程序的机器级表示

作者: 希望是水户洋平 | 来源:发表于2021-03-17 14:41 被阅读0次

    章节开头导语部分

    GCC C语言编译器以汇编代码的形式产生输出,汇编代码是机器代码的文本表示,给出程序中的每一条指令。
    x86-64是现在笔记本电脑和台式机中最常见处理器的机器语言,也是驱动大型数据中心和超级计算机的最常见处理器的机器语言。

    3.3.6 用条件传送来实现条件分支

    背景

    传统的通过使用控制的条件转移的方法(即当条件满足时,程序沿着一条执行路径执行,而当条件不满足时就走另一条路径)虽然实现起来很简单,但是在现代处理器上可能会非常低效。

    image.png

    示例

    传统方式实现
    long absdiff(long x, long y)
    {
        long result;
        if (x < y)
            result = y - x;
        else
            result = x - y;
        return result;
    }
    
    使用条件赋值方式实现
    
    long cmovdiff(long x, long y)
    {
        long rval = y - x;
        long eval = x - y;
        long ntest = x >= y;
        /*
            Line below requires single instruction:
        */
        if (ntest) rval = eval;
        return rval;
    }
    

    未完待续。。。。。。

    相关文章

      网友评论

          本文标题:CSAPP阅读笔记-第三章:程序的机器级表示

          本文链接:https://www.haomeiwen.com/subject/aywscltx.html