当前位置: 首页 > 知识库问答 >
问题:

在x86程序集中设置单个存储单元为零或常数的最快方法?

龚德本
2023-03-14

在x86中,将单个存储单元设置为零的最快方法是什么?我通常是这样做的:

C745D800000000  MOV [ebp-28], 0

共有1个答案

姚凯歌
2023-03-14

不幸的是,您在这里所写的是“直接”清零存储单元的唯一方法。当然,将寄存器复制出来,然后将其移动到某个内存位置也可以,但我不知道这样是否会更快。

如果您碰巧有一个值为零的寄存器,并且您确信它是零,那么无论如何都要使用它。否则,只需使用MOV[ebp-28],0。请记住,MEM,IMM操作数是速度最慢的操作数之一:如果您分析代码并发现这是一个瓶颈,请尝试在函数开始时将寄存器初始化为零(或其他),然后在整个代码中使用它,作为一种预定义常量。

 类似资料:
  • 问题内容: 为自定义PHP应用程序存储一组全局设置的最佳方法是什么?我正在做一个个人项目(实际上是第一个主要项目),并且需要一种存储键值对的方法来记录应用程序的整体设置。 东西存储为… 网站的全球名称。 主题(只是一个变量或主题的路径) 等等 我应该把它们放在一张桌子里吗?如果是这样,从boostrap查询它们的最佳方法是什么?除了对每个所需的设置执行单个查询。 更新:是的.ini或解析一个包含文

  • 以下所有指令都执行相同的操作:将设置为零。哪种方式是最优的(需要最少的机器周期)?

  • 问题内容: 我在AI项目上使用Redis。 这个想法是让多个环境模拟器在许多cpu内核上运行策略。模拟器将体验(状态/操作/奖励元组列表)写入Redis服务器(重播缓冲区)。然后,培训过程将经验作为数据集读取以生成新策略。将新策略部署到模拟器,删除先前运行的数据,然后继续该过程。 大部分经验都记录在“状态”中。通常将其表示为尺寸为80 x 80的大型numpy数组。模拟器会以cpu允许的最快速度生

  • 问题内容: 我需要一个存储过程,该过程可以通过发送和来检查在登录尝试时是否是否为有效用户,并查看它们在数据库中是否匹配。有没有简单的方法可以做到这一点? 问题答案: 没有更多的信息,我目前能提供的最好的服务是: 根据您的响应修改查询-这将返回字符串“ true”或“ false”,您可以根据需要将其分别替换为位值1和0。

  • 我们正试图在Linux服务器上启动hive元存储,但我们面临一个问题。如果我们尝试使用以下命令启动配置单元元存储服务: sudo hive服务转移 我们会遇到很多这样的错误: 原因:java.sql。SQLException:拒绝用户“hive”@“sandbox.hortonworks的访问。com“(使用密码:YES)在com.mysql.jdbc.SQLError.createSQLExce

  • 如何为单个单元格设置两种不同的样式?当前我正在显示中的单元格值 粗体 货币格式,例如:.