Ich benutze Easy68k, um ein Assembly-Programm zu schreiben, wo ich ein Skript zum Suchen einer Zahl in einer Datei mit Zahlen schreiben muss.68K Assembly: Suche Nummer in Zahlen Datei
Datei numbers4.txt:
1
2
3
4
5
6
7
9
11
12
13
14
Mein Code:
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
Die Werte-Datei in den Speicher geladen:
ich im Teil steckte, wo Ich muss Werte vergleichen. Ich weiß, wie man die einstelligen Werte 0-9 (dh subtrahiere 30) mit hex vergleicht, aber wie vergleicht man die zweistellige Zahl oder darüber mit hex? wie man überprüft, ob Hexadezimal "0B" einer der Ascii-Werte (31 31) ist, die im Speicher sind. Oder Vielleicht ist mein Ansatz falsch Ich bin mir nicht sicher.
Ich bin ein Neuling so meine Entschuldigung, wenn ich etwas offensichtlich vermisse. Bitte helfen