首先:我真的试图为此找到一个匹配的答案,但我只是没有成功。
我目前正在开发一个小的 8086 模拟器。我还没有弄清楚如何计算溢出和辅助标志最适合加法和减法。
据我所知,辅助标志符合溢出标志,但仅使用 4 位,而溢出标志使用整个大小。因此,如果我添加两个有符号的 1 字节整数,OF 将检查 1 字节有符号溢出,而辅助标志只会查看两个整数的低 4 个字节。
是否有任何通用算法或“神奇的按位运算”来计算 4,8 和 16 位加减法的有符号溢出?(我不介意用什么语言写的)
备注:我需要在内部将值存储在无符号变量中,所以我只能使用无符号值或按位计算。
一种适用于加法和减法的解决方案可能是在计算完成后检查“符号标志”(或辅助标志的第 4 位)是否发生了变化?
提前致谢!