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つであるかどうかを確認する方法など。または、私のアプローチが間違っているのかもしれません。
私は初心者なので、明らかな何かが欠けている場合は申し訳ありません。助けてください