Сборка 8086: Как скопировать только несколько символов из файлового буфера в переменную - PullRequest
0 голосов
/ 04 января 2019

У меня есть простой файл .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» в файле соответствует имени константы, которое мне нужно загрузить, например. ааа equ 0111.

Вся проблема в том, что я просто хочу использовать слово из файла (скажем, это слово aaa) и поместить его непосредственно для использования в коде, например

mov ax,aaa <- это будет константа с именем «aaa», загружаемая в ax, и имя этой константы для загрузки - это слово «aaa» из файла. </p>

Надеюсь, совершенно ясно, какова цель этих отдельных слов из файла.

...