1

Easy68k を使用してアセンブリ プログラムを作成しています。ここでは、数値を含むファイル内の数値を検索するためのスクリプトを作成する必要があります。

ファイル番号 4.txt :

1
2
3
4
5
6
7
9
11
12
13
14

私のコード:

    ORG    $1000

START:                  ; first instruction of program

*------------File Handling ------------*

        lea         filename, a1
        move        #51, d0
        trap        #15

        move.l      #filesize, d2
        lea         buffer, a1
        move        #53, d0
        trap        #15 

*------------Save Address in A1------------*

        movea.l     a1, a3      ; pointer for file values



*------------Searching Value Loop------------*  

            clr.l   d3          ; value at index
search      move.b  (a3)+,d3
            *-- Compare Here --*
next        cmpi.b  #$FF,d3
            bne.s   search



* Put program code here


            SIMHALT             ; halt simulator

* Put variables and constants here
    org    $2000

filename    dc.b    'numbers4.txt',0
buffer      ds.w    80
filesize    dc.b    80


    END    START        ; last line of source

メモリにロードされたファイルの値:

ここに画像の説明を入力

値を比較する必要がある部分で立ち往生しています。1 桁の値 0 ~ 9 (つまり、30 を引く) を 16 進数と比較する方法は知っていますが、2 桁以上を 16 進数と比較するにはどうすればよいですか? 16進数の「0B」がメモリ内のASCII値(31 31)の1つであるかどうかを確認する方法など。または、私のアプローチが間違っているのかもしれません。

私は初心者なので、明らかな何かが欠けている場合は申し訳ありません。助けてください

4

1 に答える 1