Правильное объявление массива символов - Assembler
Формулировка задачи:
Доброго времени суток. Подскажите, пожалуйста, как правильно объявлять массив символов, чтобы он корректно работал с функцией То функция scasb находит только проблемы, то есть первостоящий символ в этом массиве, если поменять пробел и запятую местами, будет находить только запятые.
Если задать массив таким образом:
То функция scasb вообще ничего не находит
Сама функция поиска реализована следующим образом:
scasb
? Мне необходимо задать массив символов, который будет хранить различные разделители слов, т.е пробел и знаки препинания. Затем с клавиатуры вводится строка, в которой нужно найти эти разделители. Я выдергиваю из строки символ, начиная с нулевого, и ищу данный символ в массиве символов. Если я задаю массив символов так:CharString db " ",",",".","!","?"
CharString db " ,.!?"
mov al,myString[si] mov di,offset CharString mov cx,LENGTH CharString cld repne scasb
Решение задачи: «Правильное объявление массива символов»
textual
Листинг программы
CharString db " ,.!?",0
Объяснение кода листинга программы
В данном коде происходит следующее:
- Объявляется переменная CharString типа db (в языке Assembler это означает
буфер символов
). - Значение переменной CharString инициализируется строкой
,.!?
(в кавычках). - Последний символ строки (после которого идет ноль) указывает на количество элементов в массиве.
- Таким образом, в данном случае массив CharString содержит 5 элементов:
`,
.,
!,
?` и ноль. Важно отметить, что в языке Assembler размер строки (и, соответственно, массива) определяется самим массивом, а не указывается явно, как это делается в других языках программирования.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д