您好我开始学习基本的6502程序集。不幸的是我遇到了第一个问我把代码放在这里,我的意见是做什么的。
> LDA #$5 <-- we put value $5 in register A(accumulator) STA
> STA$01 <-- we store vaule of A in memory $01 LDA #$8
> LDA #$8 <-- we load value $8 to A SBC $01
> SBC $01 <--- accumulator a number stored in $01;
现在,当我使用此网站时:http://skilldrick.github.io/easy6502/#registers
完成所有步骤后,我的累加器不是3美元。这是2美元。似乎我不明白...... 你能指出我犯错的地方吗?我很感激你的帮助。
答案 0 :(得分:3)
C
中的SBC
代表Carry
。如果Carry标志清除,SBC
会减去额外的1。
在单独的SEC
之前,或在实施多字节减法的一系列SBC
中的第一个之前,始终执行SBC
,方法与CLC
相同{在ADC
或一系列ADC
之前{1}}。