首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在汇编程序中使用指针偏移量比递减快吗?

在汇编程序中使用指针偏移量比递减快吗?
EN

Stack Overflow用户
提问于 2012-02-13 04:45:59
回答 1查看 158关注 0票数 2

指针偏移会占用额外的时间吗?哪一个更可取?

代码语言:javascript
运行
复制
mov rcx, length
dec rcx
mov rax, qword ptr [rsi+rcx*8]

代码语言:javascript
运行
复制
mov rcx, length
mov rax, qword ptr [rsi+rcx*8-8]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-13 05:25:12

使用offest应该是首选的,在现代架构上,这可以更快,但永远不会慢。

  • 它少了一条指令。指令解码是一种有限的资源。
  • 由于偏移量在字符范围内,因此代码序列的长度缩短了一个字节。这需要更少的高速缓冲存储器。
  • 依赖链少了一条指令。在您的第一个序列中,必须等待decrement.
  • Address计算结果的地址计算是在单独的单元中完成的。使用复杂寻址模式时不会影响速度。

另一方面,有可能减量会被重新排序,以便更早地执行,所以这不会在速度上产生什么影响。欲了解更多背景信息,请访问http://www.agner.org/optimize/#manuals

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9252512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档