X264学习7-汇编语言

汇编语言

关于x64 汇编下的PIC(version20120625)

PIC,位置独立代码,主要用于动态链接库中,对应的gcc选项为-fPIC。在文献<<深入理解计算机系统(第二版, Randal E.Bryant,David R.O’Hallaron著;龚奕利,雷迎春翻译)>>和<<程序员的自我修养,链接、装载、库(俞甲子,石凡,潘爱民著)>>中,对位置位置的概念进行了详细的介绍。其要点如下。

在目标文件中(a.o),所有a.o或其他.o定义的符号,都是相对地址。在写汇编时,应该使用lea获取其的绝对地址。即.o中为相对地址,加载后为绝对地址。比如如下代码。

%ifdef PIC
;---------------------------------------------------------------------
;获取位于地址mask_ff+16数据的地址到r3,lea r3, [mask_ff +16]
;---------------------------------------------------------------------
    lea       r3, [mask_ff + 16]
    movdqu    m1, [r3 + r2*4]
%else
    movdqu    m1, [mask_ff + r2*4 + 16]
%endif

[1] <<深入理解计算机系统(第二版, Randal E.Bryant,David R.O’Hallaron著;龚奕利,雷迎春翻译)>>

[2]<<程序员的自我修养,链接、装载、库(俞甲子,石凡,潘爱民著)>>

X264汇编感悟

  • 最好使用内联汇编。X264使用yasm汇编,其中有大量的宏,非常的专业和不易懂。内联汇编更加通俗易懂。经过ARM 内联汇编实现BGRA到yuv的实现的测试,证明了其实时性不比内嵌汇编差。
  • x264中汇编最有价值的部分是,其所用的汇编实现方案(所使用的指令和排列)几乎是最优的。因为其经过了16年左右的反复优化话迭代。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值