=== ================== === === Cmp – Compare to A === === ================== === Format 110.bbb.01 Description The specified contents are substracted from A. The result is not stored, but the flags NZC are condi- tioned, depending on whether the result is positive, null or negative. The value of the accumulator is not changed. Z is set by an equality, reset otherwise; N is set by the sign bit; C is set when A>=M. Cmp is usually followed by a branch: Bcc detects A<M, Beq detects A=M, Bcs detects A>=M, and Beq followed by Bcs detects A>M. Addressing Modes ┌─────────┬────────────┬──────────┬─────────────┬─────┬─────┬────────────────┬────────────────┐ │ Imm │ 110.010.01 │ c9 ab │ Cmp #ab │ bbb │ #2 │ 1100.0001 = c1 │ 0000.1000 = 08 │ │ Zpg │ 110.001.01 │ c5 ab │ Cmp ab │ bbb │ #3 │ 1100.0001 = c1 │ 0000.0100 = 04 │ │ Abs │ 110.011.01 │ cd cd ab │ Cmp abcd │ bbb │ #4 │ 1100.0001 = c1 │ 0000.1100 = 0c │ │ Zpg,x │ 110.101.01 │ d5 ab │ Cmp ab,x │ bbb │ #4 │ 1100.0001 = c1 │ 0001.0100 = 14 │ │ Abs,x │ 110.111.01 │ dd cd ab │ Cmp abcd,x │ bbb │ #4* │ 1100.0001 = c1 │ 0001.1100 = 1c │ │ Abs,y │ 110.110.01 │ d9 cd ab │ Cmp abcd,y │ bbb │ #4* │ 1100.0001 = c1 │ 0001.1000 = 18 │ │ *IDZ* │ 110.100.10 │ d2 ab │ Cmp (ab) │ --- │ #5 │ 1100.0010 = c2 │ 0001.0000 = 10 │ │ (Zpg,x) │ 110.000.01 │ c1 ab │ Cmp (ab,x) │ bbb │ #6 │ 1100.0001 = c1 │ 0000.0000 = 00 │ │ (Zpg),y │ 110.100.01 │ d1 ab │ Cmp (ab),y │ bbb │ #5* │ 1100.0001 = c1 │ 0001.0000 = 10 │ └─────────┴────────────┴──────────┴─────────────┴─────┴─────┴────────────────┴────────────────┘ Result ┌───────────┐ │ A?M │ ├───┬───┬───┤ │ > │ = │ < │ ┌───┼───┼───┼───┤ │ N │ 0 │ 0 │ 1 │ │ Z │ 0 │ 1 │ 0 │ │ C │ 1 │ 1 │ 0 │ └───┴───┴───┴───┘ ┌──────┬────┬─────┐ │ N==0 │ >= │ Bpl │ │ N==1 │ < │ Bmi │ ├──────┼────┼─────┤ │ Z==0 │ != │ Bne │ │ Z==1 │ == │ Beq │ ├──────┼────┼─────┤ │ C==0 │ < │ Bcc │ │ C==1 │ >= │ Bcs │ └──────┴────┴─────┘ Flags NV-BDIZC • - ••
Fehlerhinweise, Kommentare und Anregungen sind mir herzlich willkommen.
Letzte Aktualisierung: 2017-02-23