Я застреваю в точке, где мне нужно прочитать 3 числа из созданного буфера текстового файла. Я судимое чтение каждого байта, но не повез, если число больше, чем 9. шагов, которые я делаю:Ассемблер читает полные числа из txt-файла
- Открыть текстовый файл содержания
- прочитанного файла в созданный буфер
- Помещенных каждые буфера байты в другом регистре (
ax
,bx
,cx
,dx
).
Проблема заключается в том, что читает 1 байт (mov ax, buffer[0]
) в то время: если мой текстовый файл (10 10 1), он читает 1, то 0, то пространство символ (ASCII 20) и так далее. Должен ли я делать цикл, который преобразует и добавляет каждый байт в один регистр, пока он не обнаруживает символ пространства? Или есть возможность прочитать целую цифру за один раз? Вот код:
.model small
bufferLen equ 16
.stack 100h
.data
duom db "duom.txt", 0
fident dw 0
buffer db bufferLen dup (?)
.code
start:
mov dx, @data
mov ds, dx
mov bx, 81h
tikrinam: ; not important
mov ax, es:[bx]
inc bx
cmp al, 13
je openf
cmp al, 20h
je tikrinam
cmp ax, "?/"
jne openf
mov ax, es:[bx]
cmp ah, 13
je abouthlp
jmp openf
abouthlp:
mov dx, offset about
mov ah, 09h
int 21h
jmp ending
openf:
mov ah, 3Dh
mov al, 0
mov dx, offset duom
int 21h
mov [fident], ax
readf:
mov ah, 3Fh
mov bx, [fident]
mov cx, bufferLen
mov dx, offset buffer
int 21h
mov al, buffer[0]
mov bl, buffer[1]
mov cl, buffer[2]