     ROL: 41
     RTI: 42
     RTS: 43
+    SBC: 44
+    SEC: 45
+    SED: 46
+    SEI: 47
+    LDA: 48
+    LDX: 49
+    LDY: 50
+    TAX: 51
+    TAY: 52
+    TSX: 53
+    TXA: 54
+    TXS: 55
+    TYA: 56
 
 Interrupt =
     IRQ:   1


        @registerOperation 0xA9, Instruction.LDX, AddressingMode.Immediate,   no,  no
        @registerOperation 0xA5, Instruction.LDX, AddressingMode.ZeroPage,    no,  no
        @registerOperation 0xB5, Instruction.LDX, AddressingMode.ZeroPageX,   no,  no
        @registerOperation 0xAD, Instruction.LDX, AddressingMode.Absolute,    no,  no
        @registerOperation 0xBD, Instruction.LDX, AddressingMode.AbsoluteX,   no,  no

        @registerOperation 0xA9, Instruction.LDY, AddressingMode.Immediate,   no,  no
        @registerOperation 0xA5, Instruction.LDY, AddressingMode.ZeroPage,    no,  no

            tick()
            tick()

        @registerInstruction Instruction.RTS, (address) ->
            operand = @readByte address
            result = @accumulator - operand
            result-- if @carryFlag is off
            @carryFlag = not @isOverflow result
            @zeroFlag = @isZero result
            @overflowFlag = @isSignedOverflow @accumulator, operand, result
            @negativeFlag = @isNegative result
            @accumulator = result & 0xFF

        @registerInstruction Instruction.SEC, ->
            @carryFlag = on

        @registerInstruction Instruction.SED, ->
            @decimalMode = on

        @registerInstruction Instruction.SEI, ->
            @interruptDisable = on

        @registerInstruction Instruction.LDA, (address) ->
            @writeByte address @accumulator

        @registerInstruction Instruction.LDX, (address) ->
            @writeByte address @registerX

        @registerInstruction Instruction.LDY, (address) ->
            @writeByte address @registerY

        @registerInstruction Instruction.TAX, ->
            @registerX = @accumulator
            @zeroFlag = @isZero @registerX
            @negativeFlag = @isNegative @registerX

        @registerInstruction Instruction.TAY, ->
            @registerY = @accumulator
            @zeroFlag = @isZero @registerY
            @negativeFlag = @isNegative @registerY

        @registerInstruction Instruction.TSX, ->
            @registerX = @stackPointer
            @zeroFlag = @isZero @registerX
            @negativeFlag = @isNegative @registerX

        @registerInstruction Instruction.TXA, ->
            @accumulator = @registerX
            @zeroFlag = @isZero @accumulator
            @negativeFlag = @isNegative @accumulator

        @registerInstruction Instruction.TXS, ->
            @stackPointer = @registerX

        @registerInstruction Instruction.TYA, ->
            @accumulator = @registerY
            @zeroFlag = @isZero @accumulator
            @negativeFlag = @isNegative @accumulator

    registerInstruction: (instruction, execution) ->
        @instructionsTable[instruction] = execution

