We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
CLC: Difference between revisions
From SnesLab
(→External Links: page number) |
(flowed REP into body) |
||
(22 intermediate revisions by the same user not shown) | |||
Line 16: | Line 16: | ||
!colspan="9"|Flags Affected | !colspan="9"|Flags Affected | ||
|+ | |+ | ||
|N | |[[Negative Flag|N]] | ||
|V | |[[Overflow Flag|V]] | ||
|M | |[[M Flag|M]] | ||
|X | |[[X Flag|X]] | ||
|D | |[[Decimal Flag|D]] | ||
|I | |[[I Flag|I]] | ||
|Z | |[[Zero Flag|Z]] | ||
|C | |[[Carry Flag|C]] | ||
|+ | |+ | ||
|. | |. | ||
Line 38: | Line 38: | ||
The 6502 lacks an add-without-carry instruction, so it is important to make sure the carry flag is clear before doing an [[ADC]] or else the sum will be one too great. | The 6502 lacks an add-without-carry instruction, so it is important to make sure the carry flag is clear before doing an [[ADC]] or else the sum will be one too great. | ||
No other flags are affected. | |||
==== Syntax ==== | |||
<pre> | |||
CLC | |||
</pre> | |||
One of the first instructions a SNES game runs after coming out of reset is often a CLC so that [[XCE]] can switch to native mode. | |||
To clear more than one flag at the same time, use [[REP]]. | |||
=== See Also === | === See Also === | ||
* [[SEC]] | * [[SEC]] | ||
* [[CLV]] | * [[CLV]] | ||
* [[CLD]] | |||
* [[CLI]] | |||
* [[CLRC]] | * [[CLRC]] | ||
=== External Links === | === External Links === | ||
* [[Eyes & Lichty]] | * [[Eyes & Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/441 page 441] on CLC | ||
* [[Labiak]] | * [[Labiak]], [https://archive.org/details/Programming_the_65816/page/n140 page 130] on CLC | ||
* [[MCS6500 Manual]] | * 3.0.2 on [[MCS6500 Manual]], [https://archive.org/details/mos_microcomputers_programming_manual/page/n40 page 25] on CLC | ||
* [[Carr]] | * [[Carr]], [https://archive.org/details/6502UsersManual/page/n266 page 253] on CLC | ||
* [[Leventhal]] | * [[Leventhal]], [https://archive.org/details/6502-assembly-language-programming/page/n101 page 3-52] on CLC | ||
* snes9x implementation of CLC: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L1420 | * snes9x implementation of CLC: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L1420 | ||
* Clark, Bruce. http://www.6502.org/tutorials/65c816opcodes.html#6.4.1 | |||
[[Category:ASM]] | [[Category:ASM]] | ||
[[Category:Inherited from 6502]] | [[Category:Inherited from 6502]] | ||
[[Category:One-byte Instructions]] | |||
[[Category:Implied Instructions]] | |||
[[Category:Two-cycle Instructions]] |
Latest revision as of 01:53, 10 August 2024
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
Implied (type 2) | 18 | 1 byte | 2 cycles |
Flags Affected | ||||||||
---|---|---|---|---|---|---|---|---|
N | V | M | X | D | I | Z | C | |
. | . | . | . | . | . | . | 0 |
CLC is a 65x instruction that clears the carry flag.
The 6502 lacks an add-without-carry instruction, so it is important to make sure the carry flag is clear before doing an ADC or else the sum will be one too great.
No other flags are affected.
Syntax
CLC
One of the first instructions a SNES game runs after coming out of reset is often a CLC so that XCE can switch to native mode.
To clear more than one flag at the same time, use REP.
See Also
External Links
- Eyes & Lichty, page 441 on CLC
- Labiak, page 130 on CLC
- 3.0.2 on MCS6500 Manual, page 25 on CLC
- Carr, page 253 on CLC
- Leventhal, page 3-52 on CLC
- snes9x implementation of CLC: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L1420
- Clark, Bruce. http://www.6502.org/tutorials/65c816opcodes.html#6.4.1