Я использую Easy68k для записи программы сборки, где мне нужно написать скрипт для поиска номера внутри файла с числами. numbers4.txt68K Сборка: номер поиска в номерах
Файл:
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
Значения файлов загружаются в память:
Я застрял в той части, где Мне нужно сравнивать значения. Я знаю, как сравнивать однозначные значения 0-9 (т.е.: вычесть 30) в шестнадцатеричные, но как сравнить двойную цифру или с шестнадцатеричным значением? например, как проверить, является ли hex «0B» одним из значений ascii (31 31), которое находится в памяти. Или, может быть, мой подход неверен. Я не уверен.
Я новичок, поэтому приношу свои извинения, если мне не хватает чего-то очевидного. Пожалуйста, помогите