在虚拟机中执行减法指令时使用进位标志

问题描述

我正在用 C 编写一个小型 8 位虚拟机,我遇到了一个我无法解决的“减法”指令的实现问题。这是我目前所拥有的执行减法运算的代码块:

case SUB_IMM: 
        source = (~fetchUInt8(pc++)) + carry_flag;
        acc += source; 
        zeroflag(acc);
        break;
    
    

fetchUInt8() 函数从内存中取出一个 8 位值,该值被反转并添加进位标志的值。 zeroflag(acc) 检查累加器的值是否为零并相应地设置零标志。我的问题是:减法指令应该在执行减法运算后设置进位标志的值,还是应该不理会它?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)