Считывание чисел из файла - Assembler/TASM
Формулировка задачи:
Я знаю как считать число из файла, но не знаю как считать несколько чисел. Может кто обьяснить как это сделать?
Решение задачи: «Считывание чисел из файла»
textual
Листинг программы
mov ax,3d00h lea dx,(имя файла) int 21h jc exit mov bx,ax xor cx,cx xor dx,dx mov ax,4200h int 21h out_str: mov ah,3fh mov cx,1 lea dx,buf int 21h cmp ax,cx jnz close mov al,buf sub al, 30h
Объяснение кода листинга программы
- Вначале программа устанавливает значение регистра AX в 3D00H. Это используется для открытия файла.
- Затем программа использует LEA для загрузки имени файла в DX.
- После этого происходит вызов функции 21H, которая открывает файл. Если файл не может быть открыт, происходит переход к метке
exit
. - Далее, значение регистра BX устанавливается равным значению регистра AX. Это значение будет использоваться для чтения данных из файла.
- Значения регистров CX и DX обнуляются.
- Затем программа устанавливает значение регистра AX в 4200H. Это используется для чтения данных из файла.
- После этого происходит вызов функции 21H, которая начинает чтение данных из файла.
- Регистр AX используется для подсчета количества прочитанных байтов.
- Происходит переход к метке
out_str
, если файл пуст. - Затем программа устанавливает значение регистра AH в 3FH. Это используется для чтения символа из файла.
- Значение регистра CX устанавливается равным 1.
- Регистр DX используется для хранения прочитанного символа.
- Происходит вызов функции 21H для чтения символа из файла.
- Затем происходит сравнение значения регистра AX и CX. Если они не равны, происходит переход к метке
close
. - Значение регистра AL устанавливается равным значению регистра DL.
- Затем происходит вычитание 30H из значения регистра AL. Это используется для преобразования числового значения в ASCII.
- Происходит переход к метке
close
. - Программа закрывает файл.
- Происходит переход к метке
exit
. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д