Math 0xABCD-0x1234是否应设置进位?

Math 0xABCD-0x1234是否应设置进位?,math,assembly,carryflag,pic24,Math,Assembly,Carryflag,Pic24,我在准备期末考试的时候遇到了这个问题: 经过分析后,我得到了0x9999的答案,因为当通过2的补码执行减法时,MSB上有一个进位,因此分支指令会将程序发送到loc1。我的教授说答案是0x9997,只有在未设置进位的情况下才可能。我已经查过了,似乎应该在这里设置进位。我是遗漏了什么还是我的教授犯了错误?微芯片的开发工具不包括模拟器/仿真器吗?这可能是验证这一点最简单的方法。我同意你的解决方案,ABCD-1234不产生借用,在PIC中表示C=1,因此进行跳转,结果应该是9999。@潜伏者:在PIC

我在准备期末考试的时候遇到了这个问题:


经过分析后,我得到了0x9999的答案,因为当通过2的补码执行减法时,MSB上有一个进位,因此分支指令会将程序发送到loc1。我的教授说答案是0x9997,只有在未设置进位的情况下才可能。我已经查过了,似乎应该在这里设置进位。我是遗漏了什么还是我的教授犯了错误?

微芯片的开发工具不包括模拟器/仿真器吗?这可能是验证这一点最简单的方法。我同意你的解决方案,ABCD-1234不产生借用,在PIC中表示C=1,因此进行跳转,结果应该是9999。@潜伏者:在PIC(以及某些处理器,如6502)的情况下,减法上的进位标志表示不借用。您所拥有的文档假设的环境正好相反。