Difference between revisions of "BIT"
From GbdevWiki
| Line 1: | Line 1: | ||
{{Instruction| | {{Instruction| | ||
| − | |||
Description=This instruction group tests various bits of the various registers, or memory location. | | Description=This instruction group tests various bits of the various registers, or memory location. | | ||
| − | Encoding= | + | Encoding=<nowiki> |
| − | + | 01bbbrrr | |
| − | + | | || | | |
| − | + | | |+-+- Register | |
| + | +-+---- Bit to test | ||
Where register is one of the following: | Where register is one of the following: | ||
| Line 16: | Line 16: | ||
101: L - 2 Machine Cycles | 101: L - 2 Machine Cycles | ||
110: (HL) - 3 Machine Cycles | 110: (HL) - 3 Machine Cycles | ||
| − | 111: A - 2 Machine Cycles | | + | 111: A - 2 Machine Cycles</nowiki> | |
Z=1 if specified bit is 0; 0 otherwise | | Z=1 if specified bit is 0; 0 otherwise | | ||
H=1 | | H=1 | | ||
| − | N=0}} | + | N=0 | |
| + | Example=<nowiki> | ||
| + | void BIT(code, data) | ||
| + | { | ||
| + | z = (data & ~(1 << (code >> 3 & 7))); | ||
| + | n = 0; | ||
| + | h = 1; | ||
| + | }</nowiki>}} | ||
Latest revision as of 13:52, 25 May 2012
This is an article about the GB-Z80 CPU.
Opcodes:
Arithmetic and logical: ADD - ADD (16-bit) including LD HL,SP+nn - ADC - AND - CP - CPL - DAA - DEC - DEC and INC (16-bit) - INC - SBC - SUB - OR - XOR
Conditional: CALL - JP - JR - RET
Load: LD (8-bit) - LD (16-bit)
Extended Set: BIT - RES - RL - RLC - RR - RRC - SET - SLA - SRA - SRL - SWAP
This instruction group tests various bits of the various registers, or memory location.
Encoding
01bbbrrr | || | | |+-+- Register +-+---- Bit to test Where register is one of the following: 000: B - 2 Machine Cycles 001: C - 2 Machine Cycles 010: D - 2 Machine Cycles 011: E - 2 Machine Cycles 100: H - 2 Machine Cycles 101: L - 2 Machine Cycles 110: (HL) - 3 Machine Cycles 111: A - 2 Machine Cycles
Flags
Z: 1 if specified bit is 0; 0 otherwise N: 0 H: 1
Example
void BIT(code, data)
{
z = (data & ~(1 << (code >> 3 & 7)));
n = 0;
h = 1;
}