Chapter 3. Basic Assembler Functionality

This chapter describes the mnemonics and the basic directives that are not related to the script language.

3.1. Mnemonics

In Kick Assembler you can write assembler mnemonics the traditional way:

lda #0
sta $d020
sta $d021

If you want to write several commands on one line then separate them with ; like this:

lda #0; sta $d020; sta $d021

Kick Assembler supports all opcodes, also the illegal ones. A complete list of commands and their opcodes in the each mode is shown here:

Table 3.1. Mnemonics

cmd noarg imm zp zpx zpy izx izy abs abx aby ind rel
adc   $69 $65 $75   $61 $71 $6d $7d $79    
ahx             $93     $9f    
alr   $4b                    
anc   $0b                    
anc2   $2b                    
and   $29 $25 $35   $21 $31 $2d $3d $39    
arr   $6b                    
asl $0a   $06 $16       $0e $1e      
axs   $cb                    
bcc                       $90
bcs                       $b0
beq                       $f0
bit     $24         $2c        
bmi                       $30
bne                       $d0
bpl                       $10
brk $00                      
bvc                       $50
bvs                       $70
clc $18                      
cld $d8                      
cli $58                      
clv $b8                      
cmp   $c9 $c5 $d5   $c1 $d1 $cd $dd $d9    
cpx   $e0 $e4         $ec        
cpy   $c0 $c4         $cc        
dcp     $c7 $d7   $c3 $d3 $cf $df $db    
dec     $c6 $d6       $ce $de      
dex $ca                      
dey $88                      
eor   $49 $45 $55   $41 $51 $4d $5d $59    
inc     $e6 $f6       $ee $fe      
inx $e8                      
iny $c8                      
isc     $e7 $f7   $e3 $f3 $ef $ff $fb    
jmp               $4c     $6c  
jsr               $20        
las                   $bb    
lax   $ab $a7   $b7 $a3 $b3 $af   $bf    
lda   $a9 $a5 $b5   $a1 $b1 $ad $bd $b9    
ldx   $a2 $a6   $b6     $ae   $be    
ldy   $a0 $a4 $b4       $ac $bc      
lsr $4a   $46 $56       $4e $5e      
nop $ea $80 $04 $14       $0c $1c      
ora   $09 $05 $15   $01 $11 $0d $1d $19    
pha $48                      
php $08                      
pla $68                      
plp $28                      
rla     $27 $37   $23 $33 $2f $3f $3b    
rol $2a   $26 $36       $2e $3e      
ror $6a   $66 $76       $6e $7e      
rra     $67 $77   $63 $73 $6f $7f $7b    
rti $40                      
rts $60                      
sax     $87   $97 $83   $8f        
sbc   $e9 $e5 $f5   $e1 $f1 $ed $fd $f9    
sbc2   $eb                    
sec $38                      
sed $f8                      
sei $78                      
shx                   $9e    
shy                 $9c      
slo     $07 $17   $03 $13 $0f $1f $1b    
sre     $47 $57   $43 $53 $4f $5f $5b    
sta     $85 $95   $81 $91 $8d $9d $99    
stx     $86   $96     $8e        
sty     $84 $94       $8c        
tas                   $9b    
tax $aa                      
tay $a8                      
tsx $ba                      
txa $8a                      
txs $9a                      
tya $98                      
xaa   $8b                    

DTV opcodes are also supported. To use these you have to use the –dtv option at the command line when running Kick Assembler. The DTV commands are:

Table 3.2. DTV Mnemonics

cmd noarg imm zp zpx zpy izx izy abs Abx aby ind rel
bra                       $12
sac   $32                    
sir   $42