We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
CLI: Difference between revisions
From SnesLab
(see also) |
(which cycle does what) |
||
(28 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{| class="wikitable" style="float:right;clear:right;width: | {| class="wikitable" style="float:right;clear:right;width:40%" | ||
!colspan="8"|Basic Info | !colspan="8"|Basic Info | ||
|+ | |+ | ||
Line 7: | Line 7: | ||
|'''Speed''' | |'''Speed''' | ||
|+ | |+ | ||
| | |[[Implied]] (type 2) | ||
|58 | |58 | ||
|1 byte | |1 byte | ||
Line 14: | Line 14: | ||
{| class="wikitable" style="float:right;clear:right;width:30%" | {| class="wikitable" style="float:right;clear:right;width:30%" | ||
!colspan="9"|Flags | !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 35: | Line 35: | ||
|} | |} | ||
'''CLI''' is a 65x instruction that clears the [[interrupt disable flag]]. | '''CLI''' is a 65x instruction that clears the [[interrupt disable flag]], which enables maskable interrupts. To handle nested interrupts, a CLI is required. | ||
No other flags are affected. | |||
==== Syntax ==== | |||
<pre> | |||
CLI | |||
</pre> | |||
The first [[machine cycle]] is to load the opcode byte, and the second is the [[internal cycle]]. | |||
=== See Also === | === See Also === | ||
* [[SEI]] | |||
* [[EI]] | * [[EI]] | ||
* [[DI]] | * [[DI]] | ||
* [[IRQ]] | |||
* [[RTI]] | |||
* [[REP]] | |||
=== External Links === | === External Links === | ||
* [[Eyes & Lichty]] | * [[Eyes & Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/443 page 443] on CLI | ||
* [[Labiak]] | * [[Labiak]], [https://archive.org/details/Programming_the_65816/page/n142 page 132] on CLI | ||
* [[MCS6500 Manual]] | * 3.2.2 on [[MCS6500 Manual]], [https://archive.org/details/mos_microcomputers_programming_manual/page/n41 page 26] on CLI | ||
* [[Carr]] | * [[Carr]], [https://archive.org/details/6502UsersManual/page/n267 page 254] on CLI | ||
* [[Leventhal]] | * [[Leventhal]], [https://archive.org/details/6502-assembly-language-programming/page/n103 page 3-54] on CLI | ||
* snes9x implementation of CLI: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L1434 | * snes9x implementation of CLI: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L1434 | ||
[[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 16:58, 21 October 2024
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
Implied (type 2) | 58 | 1 byte | 2 cycles |
Flags Affected | ||||||||
---|---|---|---|---|---|---|---|---|
N | V | M | X | D | I | Z | C | |
. | . | . | . | . | 0 | . | . |
CLI is a 65x instruction that clears the interrupt disable flag, which enables maskable interrupts. To handle nested interrupts, a CLI is required.
No other flags are affected.
Syntax
CLI
The first machine cycle is to load the opcode byte, and the second is the internal cycle.
See Also
External Links
- Eyes & Lichty, page 443 on CLI
- Labiak, page 132 on CLI
- 3.2.2 on MCS6500 Manual, page 26 on CLI
- Carr, page 254 on CLI
- Leventhal, page 3-54 on CLI
- snes9x implementation of CLI: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L1434