gb-emu-lib/CPU.cpp
unsigned long CPU::PUSHrr(const byte& opCode)
{
    ushort* rr = GetUShortRegister(opCode >> 4, true);
    PushUShortToSP(*rr);

    return 16;
}
/*
    PUSH rr
    11qq0101

    The contents of the register pair rr are pushed to the external memory stack.
    The stack pointer holds the 16-bit address of the current top of the stack.
    This instruction first decrements SP and loads the high order byte of register
    pair rr to the memory address specified by the SP. The SP is decremented again,
    and then the low order byte is then loaded to the new memory address. The operand
    rr identifies register pair BC, DE, HL, or AF.

    16 Cycles

    Flags affected(znhc): ----
*/


The contents of the register pair rr are pushed to the external memory stack.
The stack pointer holds the 16-bit address of the current top of the stack.
This instruction first decrements SP and loads the high order byte of register
pair rr to the memory address specified by the SP. The SP is decremented again,
and then the low order byte is then loaded to the new memory address.

16 Cycles


The contents of the register pair rr are pushed to the external memory stack . The stack pointer holds the 16 - bit address of the current top of the stack . This instruction first decrements SP and loads the high order byte of register pair rr to the memory address specified by the SP . The SP is decremented again and then the low order byte is then loaded to the new memory address . 16 Cycles
unsigned long CPU::PUSHrr(const byte& opCode)
{
    ushort* rr = GetUShortRegister(opCode >> 4, true);
    PushUShortToSP(*rr);
    return 16;
}
unsigned long CPU :: PUSHrr ( const byte & opCode ) { ushort * rr = GetUShortRegister ( opCode >> 4 , true ) ; PushUShortToSP ( * rr ) ; return 16 ; }
PUSH rr
11qq0101
PUSH rr 11qq0101