マイコンプログラムのオペランドを可能な限り数値で表してみよう その2

LIST P=16F84A  ;マイコンはPIC16F84A
INCLUDE P16F84A.INC  ;インクルードファイルを指定

__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
     ;コンフィギュレーションビットの設定
     ;水晶(HS)発振、ウォッチドッグタイマはOFF
     ;パワーアップタイマはOFF、コードプロテクトはOFF
;---------------------------------------------------------------
;プログラム開始

ORG 0x000  ;リセットベクタ(プログラムアドレス0番地)
goto START  ;STARTへ跳ぶ
nop
nop
nop
ORG 0x004  ;割り込みベクタ(プログラムアドレス4番地)
retfie   ;割り込みから復帰
nop
ORG 0x006
START
call PORT_INIT ;ポートの初期設定
MAIN_LOOP
btfsc   PORTA,0   ;RA0のスイッチ1をチェック
call    KEY_CHEK    ;ON(1)ならKEY_CHEKの処理へ
goto MAIN_LOOP
;--------------------------------
KEY_CHEK
bcf     STATUS,C
btfss   PORTB,2
rlf     PORTB,F
KEY_LOOP
nop   ;ウェイト4us
nop   ;ウェイト4us
nop   ;ウェイト4us
nop   ;ウェイト4us
nop   ;ウェイト4us
btfsc   PORTA,0   ;RA0のスイッチ1をチェック
goto    KEY_LOOP    ;ON(1)ならKEY_CHEKの処理へ
nop   ;ウェイト4us
nop   ;ウェイト4us
nop   ;ウェイト4us
nop   ;ウェイト4us
nop   ;ウェイト4us
return
;--------------------------------
PORT_INIT
bsf STATUS,RP0 ;バンク1に切り替え
movlw   0FFh           ;ポートAを入力モードにセット
movwf   TRISA        ;ポートAのモード設定
clrf TRISB  ;ポートBを出力モードに設定
bcf STATUS,RP0 ;バンク0に切り替え
movlw   01h
movwf   PORTB
return
;--------------------------------
  end


このソースファイルのオペランドを可能な限り数値のみで表してみた。


LIST P=16F84A
INCLUDE P16F84A.INC
__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
;---------------------------------------------------------------
;プログラム開始
ORG 0x000
goto 0x006
nop
nop
nop
ORG 0x004
retfie
nop
ORG 0x006
call 0x01A
btfsc   0x005,0
call    0x00A
goto 0x007
;--------------------------------
bcf     0x003,0
btfss   0x006,2
rlf     0x006,1
nop
nop
nop
nop
nop
btfsc   0x005,0
goto    0x00D
nop
nop
nop
nop
nop
return
;--------------------------------
bsf 0x003,5
movlw   0x0FF
movwf   0x085
clrf 0x086
bcf 0x083,5
movlw   0x001
movwf   0x006
return
;--------------------------------
  end


命令のアドレスやdestの番号について理解して、そのようにできたのだ。