![]() |
|
|
![]()
|
|
| froggy82 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 25.9.2006 Где: Архангельск Репутация: нет Всего: нет |
Итак перешли плавно в тему Строковые операции...
Задание: 1. Напишите процедуру, которая «склеивает» две строки и записывает результат в третью. Обе строки должны быть считаны с клавиатуры, результат должен быть отображён на экране. 2. Дана строка. Подсчитать количество гласных, встречающихся в ней. Результат и первоначальную строку вывести на экран. Примечание: Все входные переменные, необходимые для решения задания вводит пользователь. Результат работы программы необходимо вывести на экран. Чтение и запись строк выполнять только с использованием строковых операций. Если необходимо проверить вхождение данного символа в некоторое множество, можно воспользоваться дополнительной строкой: CmpStr db “EAUOIeauoi” {гласные буквы} В этом случае поиск осуществляется с помощью команды SCASB. Честно совсем не понимаю, наведите на путь истинный! Это сообщение отредактировал(а) froggy82 - 11.10.2006, 12:38 |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
Дать общую стратегию решения можно. Реализовывай сам!
По п.1. Для ввода строки используй функция 0Ah DOS. Во втором байте буфера, который укажешь для помещения в него строки будет содержаться длина введеной строки. Далее записываешь в di адрес (смещение) первой строки с учетом ее длины, а в si - второй, ее начало. И две строки склеиваешь командой movs(b,d,w) с превиксом rep, предваретильно поместв в cx длину второй строки. Первую строку, уже склееную выводишь. Мелочи типа перевод картеки после ввода первой строки, а также способ вывода на экран (средствами BIOS'а или прямым копированием в видеопамять) разберешь сам. По п.2. В cl - 0 (и это понятно Выводишь cl. |
|||
|
||||
| nobodyzzz |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 1.9.2006 Где: Минск Репутация: нет Всего: нет |
п2. схематично так =))
Это сообщение отредактировал(а) nobodyzzz - 12.10.2006, 09:12 |
|||
|
||||
| dumb |
|
||||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
вообще, такие темы надо в "Центр помощи" создавать...
иэх, не хотел готовое давать, чтобы сам позанимался... но "схематичные советы" содержат ошибки, поэтому даю правильный ответ: 1.
2.
|
||||
|
|||||
| Dave |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 17.6.2004 Репутация: нет Всего: 1 |
вопрос по программе №1, я взял код, упростил ее, мне нужно просто для начала получить строку и затем ее просто вывести на экран
строку получаю, но при выводе получаю белиберду, посмотрите код плз.
вот если я хочу вывести mes1 то делаю mov dx, offset mes1 и вызываю ф-ю вывода на экран и все работает. Думаю, по аналогии должно работать и в случае когда в dx хранится смещение на только что введенную строку, но не работает. Возможно проблема в том что нет нулевого завершителя в конце введенной строки, пробовал перед помещением в dx делать так: mov str1[4],'$', в этом случае было больше похоже на правду но все равно работало неправильно Ж((( |
|||
|
||||
| airyashov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
если совсем туго тогда объявите так:
-------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |