我有一个简单的.txt文件,其内容如下所示:
aaa bbb ccc (...)
此文件中的每个“单词”都是一种单独的指令。 我想一遍又一遍地读这些单词,将每个单词写到dw“ temp”变量(例如temp dw'aaa')中,以便首先使用它,然后再读另一个单词并以类似方式使用它。>
我正在使用DOSBox,TASM和intel 8086程序集。我也已经尝试通过这些论坛自己弄清楚了,但是找不到我能理解或使用的解决方案。
我已经准备好一个函数“ readFile”,正在打开文件,它是有效的,并且已经被程序看到,因此可以正常工作。
readFile:
mov ah,3Fh
mov cx,3 ; to read 3 bytes (letters) at single run
mov dx,offset buffer
mov bx,handler ; handle for file
int 21h
cmp ax,0
je endOfFile
mov ax,[buffer] <---
mov [temp],ax <--- these lines obviously won't work
CALL execute
jmp readFile
...
handler dw 0
buffer dw 255 DUP(0)
temp dw ? <--- this should be 'aaa', then 'bbb', then 'ccc' and so on
现在的问题是,如何将文件中的第一个单词“ aaa”“捕捉”到临时变量,然后以所需的方式使用它,经过空间,然后将第二个单词“ bbb”“捕捉”为临时(等等)?
当前的代码无法正常工作,例如,尽管已编译缓冲区,但未正确保存缓冲区。
我有一种感觉,我在这里缺少一些基本的东西,但是我无法弄清楚。预先感谢!
编辑:或者,我认为可以放弃使用此“ temp”变量,而以某种方式直接在代码中使用该“ aaa”,但是我不知道如何。我忘了提及,文件中的“ aaa”对应于我当前需要加载的常量名称,例如。 aaa equ 0111。
所有问题是,我只想使用文件中的单词(比如说这个aaa单词),然后直接将其放在代码中使用,例如
mov ax,aaa
<-这将是一个名为“ aaa”的常量,它已加载到ax中,并且该常量的名称是文件中的“ aaa”字。
我希望很清楚这些文件中单独单词的目的是什么。