OW-nak ígértem egy Pascal-szerű helpet a 6502 címzésmódjaihoz, de akárki hasznát veheti akár:
Immediate:LDA #$03 a := $03; ZeroPage:LDA $03 a := RAM[$03]; ZeroPage X:LDX #$05
LDA $03,X x := $05;
a := RAM[($03 + x) and $ff]; ZeroPage Y:LDY #$05
LDA $03,Y y := $05;
a := RAM[($03 + y) and $ff]; Absolute:LDA $0300 a := RAM[$0300]; Absolute X:LDX #$05
LDA $0300,X x := $05;
a := RAM[$0300 + x]; Absolute Y:LDY #$05
LDA $0300,Y y := $05;
a := RAM[$0300 + y]; Indirect:JMP ($0312) pg := $0300;
tg := $12;
ad := RAM[pg + tg];
tg := (tg + 1) and $ff;
ad := ad + (RAM[pg + tg] shl 8);
PC := RAM[ad]; Indexed Indirect:LDX #$02
LDA ($30,X) x := $02;
tg := RAM[($30 + X) and $ff];
pg := RAM[($31 + X) and $ff];
a := RAM[(pg shl 8) + tg]; Indirect Indexed:LDY #$02
LDA ($30),Y y := $02;
zp := $30;
tg := RAM[zp];
zp := (zp + 1) and $ff;
pg := RAM[zp];
a := RAM[(pg shl 8) + tg + y]; Relative:kecske:
DEC $02
BCC kecske kecske:
RAM[$02] = RAM[$02] - 1;
flag_c := RAM[$02] = $FF;
if (flag_c) then goto kecske; Ezen felül van még az Implied, ahol nincs címzés, illetve bizonyos assemblerek az Impliedtől külön veszik az Accumulator "címzést", ahol az A a célpont. Pl.ROL vsROL A A kettő ugyanazt csinálja és igazából mind a kettőnek megvan a logikus indoklása, végeredményben a cél az akku, de mégis implikált a címzés. Az assemblertől függ, azt kell használni, amit az tud. Ha mindkettőt, akkor meg tökmindegy. Viszont ez nem memóriacímzés, tehát nem fontos most. |