![]() |
|
|
![]()
|
|
| Rolana |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 29.11.2013 Репутация: нет Всего: нет |
Ооооочень нужна помощь. У нас Ассемблер изучается ознакомительно, а лабораторные сдавать надо.
Задание: Ввести строку текста. Проверить, является ли этот текст гиперссылкой в формате «http:\\www.abc.ua». Если да, то напечатать сообщение: «Это гиперссылка» в другом случае: «Это не гиперссылка». Был дан пример работы со строковыми переменными:
Я что-то там пыталась переделывать. Например, чтобы подсчитывало длину строки... на этом и заглохло всё(( |
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Rolana, такие вещи проверяются при помощи регулярных выражений. Для учебной задачи на асм под DOS, полагаю подойдёт и сильно упрощённая проверка.
Проверку можно выполнить в такой последоватеьности. 1. Вызов процедуры upper case - привести все символы строки к верхнему регистру - можно ограничиться лишь латинскими символами от 'a' до 'z'. 2. Проверить, что первые 11 символов в строке равны другой строке-шаблону 'HTTP:\\WWW.' 3. Проверить, что следующие символы до точки входят в диапазон от 'A' до 'Z'. 4. Проверить, что осталось 2 символа и они равны строке-шаблону 'UA'. На время отладки, можно строку не вводить, а задать её в сегменте данных - чтоб рука набивкой тестов не переутомилась. string db 'http:\\www.abc.ua' Попробуй начать. Реализуй поэтапно в виде подпрограмм. А потом всё соберёшь в единую прграмму. Кое-что уже реализовано - сравнение строки с шаблоном. Подброшу отнюдь не идеальный фрагмент UpperCase. Для преобразования после проверок используется вычитание потому, что в таблице ASCII, прописные символы расположены раньше строчных
Хочу обратить твоё внимание на некорректный вызов функций DOS (прерывание 21h): 1. При выводе строки (int 21h ah=09h) лишний inc dx 2. При завершении программы вызов не ax=4c00h, а ah=4ch. Твой вызов был бы корректен, если бы в al загружалось что-то осмысленное - код возврата. ----------------------- И ещё. Не обижайся, но ассемблер не преподают гуманитариям, значит его основы будут нужны тебе на других предметах. Учи или иди работать продавцом, секретарём или кем-нибудь с низким порогом вхождения в специальность. Это сообщение отредактировал(а) ФедосеевПавел - 14.12.2013, 09:17 |
|||
|
||||
| Rolana |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 29.11.2013 Репутация: нет Всего: нет |
Я сдала лабораторную)
Благодарю! |
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Молодец!
|
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |