热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

NEG指令如何影响x86上的标志?

如何解决《NEG指令如何影响x86上的标志?》经验,为你挑选了1个好方法。

英特尔软件开发手册对此说明进行了neg说明:

如果源操作数为0,则CF标志设置为0; 否则设置为1. OF,SF,ZF,AF和PF标志根据结果设置.

我认为AF和CF会被设置为好像neg %eax被替换为,

not %eax   # bitwise negation
add $1, %eax

但事实并非如此,在实际CPU上设置AF和CF时否定0x6ffffef5.



1> Peter Cordes..:

neg所有标志设置为与sub从0 获得的标志相同.

这一系列指令将所有标志(包括AF和CF)设置为neg %eax:

xor  %ecx, %ecx
sub  %eax, %ecx     # ecx = 0 - eax

英特尔的文档实际上确实指定了这一点,但没有在伪代码操作部分或指令集参考(第2卷)条目中的标志影响部分中指定neg.

描述部分neg的文本包含此块:

此操作相当于从0减去操作数.

在第1卷中:

7.3.2.4比较和符号变更指令

[关于CMP的段落]

NEG(否定)指令从零中减去有符号整数操作数.

这个文件的存在是通过对这个问题的早期副本的评论来指出的,而这个副本并不是直接措辞的.

我不知道vol.1有一整节解释说明.事实证明,并非英特尔对个别指令所说的一切都在第2卷insn set参考中.


有一些证据表明neg内部解码为与subIntel CPU上的指令相同的uop .(例如,neg [mem]可以使用ALU op对负载进行微熔合,以及对存储地址和存储数据微操作inc [mem]进行微融合. 只能对存储进行微融合,因此它是3个完整的融合域uops).


推荐阅读
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • IhaveWindows8.1prowithanAMDprocessor.IinstalledtheAndroidSDKandEclipse.Itworksbut ... [详细]
  • 如何解决《解释intel_gpu_top输出》经验,为你挑选了1个好方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
  • 目录1、将mysql数据导出到SQL文件中(数据库存在的情况)2、将现有的sql文件数据导入到数据库中(前提数据库存在) 3、利用Navicat导出SQL文件和导入SQL文件1)从 ... [详细]
  • Ihaveai5-4250UwhichhasAVX2andFMA3.IamtestingsomedensematrixmultiplicationcodeinGCC ... [详细]
  • IinstalledAndroidStudioandIhadnoproblemswiththat.However,whenItriedtoruntheemulato ... [详细]
author-avatar
手机用户2502854967
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有