6502 汇编问题:当计算字符串中有多个SBC时,是否应该为每个SBC都有一个SEC实例?

Jon*_*iro 3 assembly 6502 carryflag

该网站称,在“主要用途”下CLC,它指出:

如果要进行一系列加法(多字节加法),则只有第一个加法ADC前面有 ,CLC因为进位功能是必要的。

在其“主要用途”下SBC指出:

您总是在操作SEC之前(设置进位标志)SBC,以便您可以判断是否需要“借位”。

换句话说,对于一系列连续的ADC操作,您只需要CLC在第一个之前有一个,但在一系列连续的SBC操作之前,您应该SEC在每个操作之前有一个。它是否正确?

Nat*_*dge 11

如果要进行一系列加法(多字节加法),则只有第一个 ADC 前面有 CLC,因为进位功能是必要的

这写得有点误导。如果您使用一系列ADC来实现多精度加法,例如将两个16位或32位数字相加,那么您CLC只需要在第一个数字之前。但是,如果您有多个连续的 ADC 添加不相关的8 位数字,那么您需要在每个 ADC 之前添加一个 CLC。否则,一次加法的进位将传播到不相关的和中。

那么SBC 的情况完全类似。如果您正在执行多个不相关的 8 位减法,则需要在每个减法之前进行 SEC。如果您使用一系列 SBC 来实现 16 位或 32 位减法等,那么您只需要在第一个 SBC 之前添加 SEC。