1

asmで配列の最大値を取得しようとしていますが、CPFSGTコマンドに問題があります。定義できません。理由はわかりません。PIC16F877を使用しています。

 CBLOCK
    MYARRAY : 0
             ARG00 EQU D'8' , ARG01 EQU D'9', ARG02 EQU D'2', ARG03 EQU D'1',
             ARG04 EQU D'7', ARG05 EQU D'5', ARG06 EQU D'4', ARG07 EQU D'6'
             ARG08 EQU D'0', ARG09 EQU D'3'
    ENDC

        Max EQU 0x73
        Counter EQU 0x74
        GOTO getMax

    getMax:
        MOVLW .0 
        MOVFW Max
        MOVLW .9
        MOVFW Counter
    loop:
        MOVLW MYARRAY + Counter
        CPFSGT Max
        MOVFW MaX
        DECFSZ Counter
        GOTO loop
        MOVLW MaX
4

2 に答える 2

1

あなたは完全に失われています...

  1. このCPFSGT命令はPIC18ファミリでのみサポートされており、あなたの場合のようにPIC16ではサポートされていません。
  2. ディレクティブCBLOCKは、ブロック定数を宣言するためのものであり、配列をプログラムするためのものではありません。
  3. 配列へのポインタとして使用FSR0または登録するFSR1
于 2013-03-17T01:21:07.460 に答える
0

CPFSGT Max の後の行は、MOVFW MAX ではなく MOVFW Max にする必要がありますか? そして最後はMOVLW Maxでもあるはずです。

ケビン

于 2013-03-16T20:42:39.247 に答える