Функция
ScanFormatString считывает данные из стандартного входного потока и записывает данные в местоположение, указанное аргументом. Каждый аргумент должен быть указателем на переменную типа, соответствующего спецификатору типа в формате.
Пример использования функции
ScanFormatString для ввода форматированной строки в которой присутствует спецификатор
%с.
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- data segment public
- ____askUser___db "Введите символ: \0"
- ____fmtoutput db "\nВы ввели: %с\0"
- ____fmtinput _db "%с"
- ____char______db ?
- data ends
- code segment public ________________; Начало сегмента кода
- ____assume _ds:data, cs:code
- ____include Handyfar.inc____________; Подключаем файл с функциями
- ____main proc ______________________; Начало процедуры main
- ________call____SetDataSegment______; Вызываем процедуру SetDataSegment
- ________lea_____ax, ds:[askUser]____; Загружаем адрес переменной askUser в регистр ds:ax
- ________call____WriteString_________; Вызываем процедуру WriteString(ax:askUser)
- ________lea_____ax, ds:[char]_______; Загружаем адрес переменной char в регистр ds:ax
- ________push____ax__________________; 2-й: Сохраняем значение регистра ax в стеке
- ________lea_____ax, ds:[fmtinput]___; 1-й: Загружаем адрес строки формата fmtinput в регистр ds:ax
- ________call____ScanFormatString____; Вызываем процедуру ScanFormatString(ax:fmtinput, char)
- ________add_____sp, 2_______________; Выравниваем стек
- ________mov_____al, char____________; Копируем значение переменной char в регистр al
- ________push____ax________________—_; 2-й: Сохраняем значение регистра ax в стеке
- ________lea_____ax, ds:[fmtoutput]__; 1-й: Загружаем адрес строки формата fmtoutput в регистр ds:ax
- ________call____PrintFormatString_—_; Вызываем процедуру PrintFormatString(ax:fmtoutput, char)
- ________add_____sp, 2_______________; Выравниваем стек
- ________xor_____al, al______________; Обнуляем регистр al
- ________call____ExitProcess_________; Вызываем процедуру ExitProcess
- ____main endp ______________________; Конец процедуры main
- code ends __________________________; Конец сегмента кода
- end main ___________________________; Конец файла. Точкой входа указывается процедура main
Пример использования функции
ScanFormatString для ввода форматированной строки в которой присутствует спецификатор
%s.