Студентам с вопросами о лабораторных работах сюда

Тема в разделе "WASM.BEGINNERS", создана пользователем IceStudent, 11 ноя 2006.

  1. MEPOX

    MEPOX New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2008
    Сообщения:
    259
    komarvl на си подойдет?
     
  2. komarvl

    komarvl New Member

    Публикаций:
    0
    Регистрация:
    10 дек 2009
    Сообщения:
    6
    На сях я сам умею)) Ассемблер к сожалению((
     
  3. FLASH300

    FLASH300 New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2008
    Сообщения:
    72
    komarvl
    может это поможет?

    Код (Text):
    1. EnumWord proc uses ebx esi pStrimg:DWORD,sizStrimg:DWORD
    2. mov esi,pStrimg             ;offset Strimg1
    3. mov ecx,esi
    4. add ecx,sizStrimg             ;sizeof Strimg1
    5. xor ebx,ebx
    6. konecWord:
    7. xor eax,eax
    8. next:
    9. lodsb     ;загрузить байт
    10. cmp esi,ecx
    11. jnb @F
    12. BTS eax,5 ;если это верхний регистр он переведется в нижний
    13. cmp al,'a'
    14. jb konecWord
    15. cmp al,'z'
    16. ja konecWord
    17. BTS eax,8 ;флаг слова
    18. jc next
    19. inc ebx ;еще слово найдено
    20. jmp next                   
    21. @@:xchg ebx,eax
    22. ret
    23. EnumWord endp
     
  4. MEPOX

    MEPOX New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2008
    Сообщения:
    259
    FLASH300 так там же написано символьного ряда. Значит не надо никакой регистр переводить, как я понимаю. Вообще тут смотря что понимать под словом. Может это просто символы, разграниченные пробелами?
     
  5. FLASH300

    FLASH300 New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2008
    Сообщения:
    72
    без редактирования не интересно :dntknw:

    ...
    lodsb ;загрузить байт
    cmp esi,ecx
    jа @F
    ...
     
  6. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.784
    MEPOX
    Если более точно, то слова это набор символов (для стандартной клавиатуры от А до Я, от а до я, от A до Z, от a до z) разделенных знаками препинания (.,!?:;), кавычками (",'), скобками (фигурными, квадратными, полукруглыми), символами пробела и табуляции (одним или несколькими подряд)
     
  7. FLASH300

    FLASH300 New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2008
    Сообщения:
    72
    MEPOX
    я понимаю последовательность латинских букв A-Z и a-z
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    >Написать программу которая для заданного символьного ряда подсчитывает количество слов!
    Программа-то тут зачем?
     
  9. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.784
    Если я правильно понял в вашей вышеназванной последовательности (типа фраза) только два слова A-Z и a-z? Вы наверное из Пиндостана?
     
  10. FLASH300

    FLASH300 New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2008
    Сообщения:
    72
    еще фильтр тока в таком случае уже таблицей попахивает :)

    Код (Text):
    1. EnumWord proc uses ebx esi pStrimg:DWORD,sizStrimg:DWORD
    2. mov esi,pStrimg             ;offset Strimg1
    3. mov ecx,esi
    4. add ecx,sizStrimg             ;sizeof Strimg1
    5. xor ebx,ebx
    6. konecWord:
    7. xor eax,eax
    8. next:
    9. lodsb     ;загрузить байт
    10. cmp esi,ecx
    11. jnb @F
    12.  
    13. cmp al,'A'
    14. jb konecWord
    15. cmp al,'Z'
    16. jbe bukva
    17.  
    18. cmp al,'a'
    19. jb konecWord
    20. cmp al,'z'
    21. jbe bukva
    22.  
    23. cmp al,'ё' ;если убрать ё будет проще жить
    24. je bukva
    25. cmp al,'Ё'
    26. je bukva
    27.  
    28. cmp al,'А'
    29. jb konecWord
    30.  
    31. bukva:
    32.  
    33. BTS eax,8 ;
    34. jc next
    35. inc ebx ;еще слово найдено
    36. jmp next                   
    37. @@:xchg ebx,eax
    38. ret
    39. EnumWord endp
     
  11. FLASH300

    FLASH300 New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2008
    Сообщения:
    72
    Mikl___

    а где было сказано что слова должны быть еще и в кириллице?
     
  12. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.784
    По большому счету обычно требуется подсчитать количество пробелов и добавить единицу типа
    Код (Text):
    1.           mov cx,_длина_фразы
    2.           mov al,20h; пробел
    3.           lea di,_начало_фразы
    4.           mov bx,1; счетчик слов
    5. a1:     repne scasb
    6.           jcxz exit; дошли до конца символьного ряда
    7.           inc bx; увеличиваем счетчик слов
    8.           jmp a1; продолжаем
    9. exit:
     
  13. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.784
    Про кодировку вообще не сказано ни слова, могут быть и иероглифы, если бы задание появилось в разделе WASM.ENGLISH тогда да без кириллицы, но пока никто другие алфавиты не отменял
     
  14. MEPOX

    MEPOX New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2008
    Сообщения:
    259
    Нет. Там же может быть записано с несколькими пробелами . :)
     
  15. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.784
    MEPOX
    В задании нет определения, что есть "слово" (смотри #1966) тогда иди от простейшего -- это же задание для студентов, иначе придется делать лексический разбор, а это ближе к курсовой :)
     
  16. FLASH300

    FLASH300 New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2008
    Сообщения:
    72
    Mikl___
    эээ... милсдарь это же был только пример :)
     
  17. FLASH300

    FLASH300 New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2008
    Сообщения:
    72
    к стати табличка из 256 бит была бы самым оптимальным вариантом для выборки

    аля
    bt [указатель на таблицу],eax ;al символ для проверки
    jc loopTRUE
    ...
    а лексический разбор это перебор:)
     
  18. komarvl

    komarvl New Member

    Публикаций:
    0
    Регистрация:
    10 дек 2009
    Сообщения:
    6
    В принципе я бы тоже делал с пробелами +1! Друзья как подсчитать пробелы! кто то может кинуть кусок проги?
     
  19. FLASH300

    FLASH300 New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2008
    Сообщения:
    72
    komarvl
    #1972
    ну если препод примет любой посредственный метод то чё нет :)
     
  20. komarvl

    komarvl New Member

    Публикаций:
    0
    Регистрация:
    10 дек 2009
    Сообщения:
    6
    Примит любой))