| |
Mace
Registered: May 2002 Posts: 1799 |
How is carry affected by compare?
Somewhere I read that the carry is affected by the result of a compare.
It's not in the Prog.Ref.Guide, other than a flag in the register table.
How does this work?
|
|
... 27 posts hidden. Click here to view all posts.... |
| |
Mace
Registered: May 2002 Posts: 1799 |
This is now on Codebase64.
The route is CPU (6502/6510) >> General Stuff >> Changing Registers. |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
uhh, rather remove that.. and add a link to the 6502.org tutorials... checking when A is zero is generally done with the Z bit anyway. It will just confuse newcomers. |
| |
Mace
Registered: May 2002 Posts: 1799 |
Better extend the tut on Codebase, because I found the 6502.org explanation rather confusing.
It's not wrong what I wrote on Codebase, so why remove it? |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: Better extend the tut on Codebase, because I found the 6502.org explanation rather confusing.
It's not wrong what I wrote on Codebase, so why remove it?
@Mace: Indeed confusing. Personally I use the more simple explanation they have on: http://www.6502.org/tutorials/compare_instructions.html
Check the table labeled "Use of Branch Instructions with Compare". That is really all you need, promise.
|
| |
yago
Registered: May 2002 Posts: 333 |
The Part about "CMP is exactly like SBC" is also wrong
|
| |
Mace
Registered: May 2002 Posts: 1799 |
@Yago: it's Wiki, anyone can change it ;-)
I removed the page. |
| |
GT Account closed
Registered: Sep 2008 Posts: 308 |
CMP is:
sec
sbc
I use this method alot in 16-bits checks:
lda freq_low
cmp freq_low2
lda freq_high
sbc freq_high2
bcs/bcc whatever
|
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
the carry is set because of the result of the cmp, and not beforehand. |
| |
GT Account closed
Registered: Sep 2008 Posts: 308 |
Quote: the carry is set because of the result of the cmp, and not beforehand.
What does the CPU do?
1. C=1
2. subtracts
3. changes C depending on result
It does it quicker than a sec+sbc, of course. Saving 2 cycles. |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
Quote: What does the CPU do?
1. C=1
2. subtracts
3. changes C depending on result
It does it quicker than a sec+sbc, of course. Saving 2 cycles.
cmp does not do that. IMHO.
http://www.6502.org/tutorials/compare_beyond.html#2.1
also check the illegals, it clearly shows there's a separate sbc instruction that works without the 'C' bit. fex. DCP is a sideeffect of CMP. |
Previous - 1 | 2 | 3 | 4 - Next |