サブルーチンの多重呼出し

不具合

プログラムを構造化して、サブルーチンを多重に呼出すプログラムにおいて、アッセンブルしたがうまく動かない。

原 因
PICによってサブルーチンをスタックできるレベルが異なる。

例えば PIC12C671 のプログラムを PIC12C509 に移植する場合、CALL命令でサブルーチンを呼出し、そのサブルーチンでさらにCALL命令を使う場合、 PIC12C671では8段のスタックが可能である。

       CALL  SUB1
       CALL  SUB2
       CALL  SUB3
         ・・・・・
         ・・・・・
       CALL  SUB8

しかし PIC12C509 では僅か2段しかスタックできない。

       CALL  SUB1
       CALL  SUB2

対 策
そのPICが何段スタックできるかプログラムを作る際、十分頭に入れておく。
  
PIC目次へ       トップページへ