x86 标志寄存器中的辅助进位和普通进位有什么区别?

2023-12-01

我想知道这个x86寄存器标志在DOS/Windows程序Debug中意味着什么:

辅助进位(AC = 1 or NA = 0)

和普通carry的意思一样吗? (CY = 1 or NC = 0)


当指令导致位 3 进位或借位时,辅助进位标志被设置。与 CY 的想法相同,但针对字节中低半字节的高位。缩写AC是旧式的,该标志在Intel处理器手册中被命名为“AF”,是“Adjust Flag”的缩写。它被一些执行 BCD 计算调整的 x86 指令使用,例如 AAC(加法后的 Ascii 调整)和 DAA(加法后的十进制调整)。这些指令可以追溯到计算的石器时代,当时以 BCD 编码提供操作数仍然很常见。它在半字节中编码十进制数字。就像十进制 99 的 BCD 码是 10011001 一样。

当时,处理器为涉及 BCD 的计算提供专用硬件支持是很常见的。那是古老的历史,程序员习惯于用二进制编码数字。嗯,最重要的是编译器。值得注意的是,这些指令不再出现在 x64 指令集中。为更有用的 64 位特定操作码腾出空间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

x86 标志寄存器中的辅助进位和普通进位有什么区别? 的相关文章

随机推荐

  • 如何在java中设置jasper报表的边距?

    如何在java中设置jasper报表的边距 我有 reports jasper 带边距 但是打印时我必须更改边距 JasperPrint setTopMargins myMarginsValue 不起作用 I use JRPrintServ
  • 将字符串转换为元组并添加到元组

    我有一个这样的配置文件 rects rect1 2 2 10 10 rect2 12 8 2 10 我需要循环遍历这些值并将它们转换为元组 然后我需要制作一个元组的元组 例如 2 2 10 10 12 8 2 10 除了使用正则表达式或 i
  • 使用键盘快捷键触发 Silverlight Prism 命令

    有谁知道是否可以通过快捷方式触发 prism 命令 我的意思是我希望能够以声明方式定义命令与键盘快捷键的绑定 例如ClientUI does 有没有用于此目的的开源库 或者也许是代码示例 I found 这个问题但我不认为它回答了我的问题
  • 获取通用 List 中 T 的实际类型

    如何在运行时使用反射获取通用列表中 T 的实际类型 这取决于您到底要问什么 在泛型类型中编写代码时Blah
  • 将动态参数传递给注释

    我想知道是否有可能将动态值传递给注释属性 我知道注释不是为了修改而设计的 但我正在使用休眠过滤器在我的情况下 要放置的条件不是静态的 我认为唯一的解决方案是使用旨在读取和修改字节码的库 例如 Javassist 或ASM但如果有其他解决方案
  • 处理 tw:counturl addthis 插件中的 <

    我有一个 addthis 插件 用于显示我的 blogspot 博客中的推文总数 我这样用 如果我提到 tw counturl my specific blogger url gt 它会显示推文的确切数量 但问题是 在这种情况下我只能使用一
  • ASP.NET Core 6配置-不同环境下的不同数据库

    我想用不同的配置实现不同的数据库连接 即用于测试的测试和用于生产的演示 但遇到了困难 我实在不知道如何制作配置文件 更不知道如何制作连接的依赖 我有一个 用于测试目的 并且它可以工作 但我不知道如何随环境改变它 这正是他们拥有 launch
  • 来自 boost Spirit 解析器的触发警告

    如何在 boost Spirit 解析器中添加警告 Edit 可以报告位置问题 例如 如果我有一个整数解析器 0 gt gt oct int 我希望能够做这样的事情 0 gt gt oct 0 gt trigger warning nega
  • JavaScript 的内置字符串是什么?

    这个问题很难用问题标题来概括 UPDATE我创建了一个 JSFiddle 它根据从此问题中提取的字母从您的输入中构建一个混淆的字符串 您可以访问它here 或者会是gist更容易吗 我最近发现了一些有趣的混淆 JavaScript这个个人资
  • 如何在 dart2js 之后从 Javascript 调用 dart 方法

    我得到了下面的 Dart 脚本 在使用 dart2js 编译 Dart 脚本后 我想通过 JavaScript 访问 hello world 类中的方法 有人知道这是如何工作的吗 我已经知道如何访问 foo 等函数 这不是问题 但它与类和方
  • 快速切换 char{ case "\u{e2}:

    let splitLines line split separator u e2 case u e2 print FoundBadReturn let newText text replacingOccurrences of u e2 wi
  • Spring MVC 的 Swagger 2.0 不起作用

    我有一些使用 Spring MVC 编写的 REST API 我正在尝试将 Swagger2 0 实现到此 我没有使用 Spring Boot 也没有使用 swagger ui 依赖项 我的目标是生成 JSON 格式的 API 文档 我参考
  • 以编程方式删除导航控制器

    该应用程序包含多个导航控制器 下面的例子 NavigationController1 gt ViewController1 gt TabBarController gt NavigationController2 gt ViewContro
  • VBA 数据排序

    我遇到的问题是 有时数据集中缺少整个标题和数据值 因此使用脚本中的最后一行 数据会向上移动一位 例如 如果我在sheet1上完全删除了H11 H12 那么与A11 K11中的数据集关联的H列的值实际上将来自数据集A13 K13 或单元格值H
  • 如何修复 node_modules/@types/moment-timezone/moment-timezone.d.ts(50,73) 中的此错误

    我在 node modules 中遇到错误 我该如何解决这个问题ERROR in node modules types moment timezone moment timezone d ts 50 73 ERROR in node mod
  • Laravel:未定义索引:驱动程序

    我正在使用 Laravel 5 5 我需要动态更改数据库 例如有两个数据库 db1 and db2 这里有张桌子articles在每个数据库中 现在我想复制文章db1 to db2 in env文件 当前数据库是db1 DB DATABAS
  • 如何修复winform中的“由于其保护级别而无法访问”错误?

    我有一个表格类 partial class ProgressMainForm Form public ProgressMainForm InitializeComponent 然后是一个使用该类并包含用户的所有功能的类 public cla
  • JavaScript 中“中断标识符”的用例是什么?

    规格goes BreakStatement break break no LineTerminator here Identifier 然后就这样了 该程序包含带有可选标识符的break语句 其中标识符不出现在封闭 但不跨越函数边界 语句的
  • C#:如何检测authenticode签名文件的篡改

    我正在尝试编写一个 C 程序来验证 exe 的数字签名 这些exe文件是用authenticode证书签名的 我想检测篡改 我已经能够创建一个 SignedCms 实例 如下所述 从 NET 中的 Authenticode 签名文件获取时间
  • x86 标志寄存器中的辅助进位和普通进位有什么区别?

    我想知道这个x86寄存器标志在DOS Windows程序Debug中意味着什么 辅助进位 AC 1 or NA 0 和普通carry的意思一样吗 CY 1 or NC 0 当指令导致位 3 进位或借位时 辅助进位标志被设置 与 CY 的想法