=== ======================================= ===
=== Sbc – Substract with complemented carry ===
=== ======================================= ===

Format:
111.bbb.01

Description
Substract the contents of memory address or literal from the accumulator, minus the complemented carry
flag. The result is left in the accumulator.

Remark
1. Sbc may operate either in decimal or binary mode: flags must be set to the correct value.
2. To Sbc without carry, the carry bit must be set to 1.

Addressing Modes
┌─────────┬────────────┬──────────┬─────────────┬─────┬─────┬────────────────┬────────────────┐
│ Imm     │ 111.010.01 │ e9 ab    │ Sbc #ab     │ bbb │ #2  │ 1110.0001 = e1 │ 0000.1000 = 08 │
│ Zpg     │ 111.001.01 │ e5 ab    │ Sbc   ab    │ bbb │ #3  │ 1110.0001 = e1 │ 0000.0100 = 04 │
│ Abs     │ 111.011.01 │ ed cd ab │ Sbc abcd    │ bbb │ #4  │ 1110.0001 = e1 │ 0000.1100 = 0c │
│ Zpg,x   │ 111.101.01 │ f5 ab    │ Sbc   ab,y  │ bbb │ #4  │ 1110.0001 = e1 │ 0001.0100 = 14 │
│ Abs,x   │ 111.111.01 │ fd cd ab │ Sbc abcd,x  │ bbb │ #4* │ 1110.0001 = e1 │ 0001.1100 = 1c │
│ Abs,y   │ 111.110.01 │ f9 cd ab │ Sbc abcd,y  │ bbb │ #4* │ 1110.0001 = e1 │ 0001.1000 = 18 │
│ *IDZ*   │ 111.100.10 │ f2 ab    │ Sbc  (ab)   │ --- │ #5  │ 1110.0010 = e2 │ 0001.0000 = 10 │
│ (Zpg,x) │ 111.000.01 │ e1 ab    │ Sbc  (ab,x) │ bbb │ #6  │ 1110.0001 = e1 │ 0000.0000 = 00 │
│ (Zpg),y │ 111.100.01 │ f1 ab    │ Sbc  (ab),y │ bbb │ #5* │ 1110.0001 » e1 │ 0001.0000 = 10 │
└─────────┴────────────┴──────────┴─────────────┴─────┴─────┴────────────────┴────────────────┘

Result
    ┌───────────┐
    │    A?M    │
    ├───┬───┬───┤
    │ > │ = │ < │
┌───┼───┼───┼───┤
│ N │ 0 │ 0 │ 1 │
│ Z │ 0 │ 1 │ 0 │
│ C │ 1 │ 1 │ 0 │
└───┴───┴───┴───┘

Flags
NV-BDIZC
••-   ••

Fehlerhinweise, Kommentare und Anregungen sind mir herzlich willkommen.

Letzte Aktualisierung: 2017-02-23