我正在使用 Easy68k 编写一个汇编程序,我必须编写一个脚本来在带有数字的文件中搜索数字。
文件 numbers4.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
加载到内存的文件值:
我被困在必须比较值的部分。我知道如何将单个数字值 0-9(即:减去 30)与十六进制进行比较,但是如何将两位数或更高的数字与十六进制进行比较?就像如何检查十六进制“0B”是否是内存中的 ascii 值(31 31)之一。或者也许我的方法不正确,我不确定。
我是新手,所以如果我遗漏了一些明显的东西,我深表歉意。请帮忙