![]() |
|
|
![]()
|
|
| Dave |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 17.6.2004 Репутация: нет Всего: 1 |
всем привет,
такая задача: дана строка с нулевым завершителем, для каждого символа из этой строки нужно подсчитать сколько раз он в ней встречается. асм только начал изучать, пока изучил самые основы такие как вывод на экран строк, оператор условного перехода, циклы, процедуры... разобрался с дебаггером более-менее. Набросайте схематично, плз, как решить задачу. Примерам кода, также буду очень рад. |
|||
|
||||
| kolobok0 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 24.12.2008 Репутация: нет Всего: 2 |
азм он разный - это раз. если под x86 семейство - это одно...если к примеру для 51 мк - другое...под AVR третье... если схематично то, цикл, с условием выхода на нулевое значение. проверка на понятие "символ". сохранение счётчика на каждое значение "символа". Если "символ" - это байт со значение от нуля до 255 то мона тупо сделать массив из 255 ячеек (если максимальное кол-во повторов 255 возможна. грубо говоря это максимальная длина строки, в крайнем случае.) и предварительно его обнулив инкрементировать счётчики по смещению равному значению вашего "символа". далее сканирование вашего массива и вывод смещения - "символ" и значения - кол-во повторов... удачи Вам (круглый) |
|||
|
||||
| Dave |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 17.6.2004 Репутация: нет Всего: 1 |
[QUOTE=kolobok0,31.12.2008, 16:08]
как именно это сделать? можно пример ? вот я ввожу строку с клавиатуры, юзаю ф-ю 01h для получения символа с клавиатуры , я так понимаю что уже в этом месте я могу инкрементировать нужный счетчик, так ? я представляю как решить эту задачу на php , преобразовал бы строку в массив, прошелся бы по нему и посчитал бы сколько раз каждый елемент встречается, на выходе бы имел ассоциативный массив где ключ это символ а значение - количество повторений. с пхп понятно, там есть ассоциативные массивы а есть ли такое в асме ? tasm, х86 под дос |
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 8 Всего: 14 |
Dave, для начала напиши программу, когда анализируется строка символов, после этого переделаешь ее на программу когда с клавиатуры вводится произвольная строка -- у тебя максимум 256 символов (на самом деле со 101 клавишной клавиатуры все символы ввести нельзя)
Это сообщение отредактировал(а) Mikl_ - 15.1.2009, 04:41 |
|||
|
||||
| airyashov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
символов меньше чем 256
-------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 8 Всего: 14 |
airyashov, Символов, как видов в строке может быть 255 как минимум, так как NUL - завершает строку, поэтому больше одного раза его не посчитаешь -- управляющие символы я могу вводить на цифровой клавиатуре при нажатой клавише Alt или в комбинации с Ctrl+буква. Давайте определимся, что есть символ? Символ -- элементарный знак, какой-либо символики, рассматриваемый вне зависимости от выражаемого им смысла. В ASCII их как раз 256
Это сообщение отредактировал(а) Mikl_ - 15.1.2009, 04:48 |
|||
|
||||
| Dave |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 17.6.2004 Репутация: нет Всего: 1 |
народ, спасибо за ответы !
|
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |