社区
汇编语言
帖子详情
for(i=98;i>=0;i--)为什么比for(i=0;i<=99;i++)效率更高?
joneykk
2009-03-06 11:10:21
看汇编时,谈到编译器优级化,说一个寄存器用来放循环次数,这个值从99循环到0比从0循环到99要效率更高。
查了好久,只说与汇编寻址有关,没有找到这方面的多的资料。
为什么会效率些?
...全文
201
9
打赏
收藏
for(i=98;i>=0;i--)为什么比for(i=0;i<=99;i++)效率更高?
看汇编时,谈到编译器优级化,说一个寄存器用来放循环次数,这个值从99循环到0比从0循环到99要效率更高。 查了好久,只说与汇编寻址有关,没有找到这方面的多的资料。 为什么会效率些?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sunkehappy
2009-03-25
打赏
举报
回复
学习了一下!
rfsmby
2009-03-07
打赏
举报
回复
最近用汇编比较多,for循环在汇编中应该是loop把,如果是递减就可以用cx来计数,执行一次loop,cx自动减一,如果是递增,就要另外设置一个变量了
psic__
2009-03-06
打赏
举报
回复
递增
inc ecx i++
cmp ecx,64h 比较 i 和 100
jle 00000008 i<=100 跳转
递减到0
dec ecx i--
jns 00000013 直接测试 i 的符号位 非负数则跳转
psic__
2009-03-06
打赏
举报
回复
用递增的方式来循环,需要一个额外的变量来保存上界的值
而用递减到0的方式,比较指令可以直接和0比较,不需要额外的变量
zoologist
2009-03-06
打赏
举报
回复
这个,和编译器有关系吧?应该不是特别绝对的。
如果要研究,需要将c生成的代码反编译
joneykk
2009-03-06
打赏
举报
回复
不好意思,键盘误。[Quote=引用 4 楼 DelphiGuy 的回复:]
loop指令。
不过楼主的两个循环次数并不相同。:)
[/Quote]
joneykk
2009-03-06
打赏
举报
回复
嗯,明白了,谢啦。
danxuezx
2009-03-06
打赏
举报
回复
[Quote=引用 3 楼 psic__ 的回复:]
递增
inc ecx i++
cmp ecx,64h 比较 i 和 100
jle 00000008 i <=100 跳转
递减到0
dec ecx i--
jns 00000013 直接测试 i 的符号位 非负数则跳转
[/Quote]
顶
日立奔腾浪潮微软松下联想
2009-03-06
打赏
举报
回复
loop指令。
不过楼主的两个循环次数并不相同。:)
leetcode刷题记录
对于这道题有两种解法。第一种暴力枚举:时间复杂度O(n^2)空间复杂度O(1)第二种哈希表查找:判断target - 数组元素是否存储在哈希表中,如果不在就将数组元素作为键,数组下标作为索引存入哈希表中,如果在则直接输出相对应的索引下标。
Origin科研绘图安装避坑指南:从环境诊断到期刊级出图
Origin作为科研数据可视化核心工具,其本质是面向物理、化学、材料等学科的矢量绘图与分析系统,而非通用图像编辑软件。它依托Windows底层权限模型、.NET运行时、DirectWrite字体渲染引擎及浮动许可证协议构建稳定工作流。技术价值在于支持高保真矢量输出(EPS/PDF)、多图层嵌套(Layer)、等比缩放与字体独立控制,满足《Advanced Materials》《JMC A》等顶刊对图宽6.5cm、五号字体、双Y轴、局部放大等硬性格式要求。典型应用场景包括XRD谱图标注、时间序列误差分析、FT
异步进化算法中的评估时间偏差:原理、诊断与工程对策
进化算法在并行计算中广泛应用,但其核心机制——适应度评估——在真实硬件上具有显著耗时差异。当不同个体的评估时间相差数个数量级时,传统异步架构会因‘快个体优先繁殖’而系统性偏向低质量、易计算的解空间,这种现象即评估时间偏差。它本质是计算资源调度与进化选择压力之间的动力学失配,直接影响收敛性、多样性和全局最优解获取能力。通过时间分布离散度(TDD)、选择压力偏移率(SPR)等可量化指标可早期识别该问题。本文聚焦于仿真优化、云原生进化计算等典型场景,结合QGEA、SPDPS、TAFS等主流方案,提供从理论建模到代
【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 07 堆、栈、表、矩阵、集合、队列、数组、字符串、树、图、动态规划、结构体、元组的算法01
当前段必须包含所有字符的最后出现位置。1. 字符串分割成最多片段2. 基因序列功能域划分3. 文本段落划分4. 音频声道分离5. 图像色彩分区6. 社交网络社群划分7. 蛋白质结构域8. 音乐乐章分段9. 代码模块划分10. 章节划分特征:一次扫描,贪心确定边界。
基于MATLAB的发动机故障检测,利用声学信号处理和特征提取。.zip
1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章