Главная страница
Навигация по странице:

  • «Московский государственный технический университет имени Н.Э. Баумана»

  • Отчет

  • Дисциплина: машинно-зависимые языки и основы компиляции Студент гр.ИУ6-43

  • __________________ (Подпись, дата) (И.О. Фамилия) Москва, 2018 Условие

  • МЗЯ ИУ6 МГТУ ДЗ1. отчет_ДЗ1 — копия. Отчет по домашней работе 1 Вариант 15 Название домашней работы обработка символьной информации


    Скачать 112.03 Kb.
    НазваниеОтчет по домашней работе 1 Вариант 15 Название домашней работы обработка символьной информации
    АнкорМЗЯ ИУ6 МГТУ ДЗ1
    Дата06.02.2022
    Размер112.03 Kb.
    Формат файлаdocx
    Имя файлаотчет_ДЗ1 — копия.docx
    ТипОтчет
    #352752

    Федеральное государственное бюджетное образовательное учреждение высшего образования



    «Московский государственный технический университет
    имени Н.Э. Баумана»


    (национальный исследовательский университет)


    ФАКУЛЬТЕТ ____ИНФОРМАТИКА И СИСТЕМЫ УПРАВЛЕНИЯ________

    КАФЕДРА _____Компьютерные Системы и сети (ИУ6)___________

    Отчет

    по домашней работе № 1

    Вариант 15

    Название домашней работы: обработка символьной информации

    Дисциплина: машинно-зависимые языки и основы компиляции

    Студент гр.ИУ6-43 __________________ Апельсин Заводной

    (Подпись, дата) (И.О. Фамилия)
    Преподаватель __________________

    (Подпись, дата) (И.О. Фамилия)

    Москва, 2018

    1. Условие

    Дан текст 10 слов, разделенных пробелами (одним и более). Определить количество слов, содержащих более 4 символов.

    1. Ход работы



    Рисунок 1 – Схема алгоритма

    1. Листинг 1. Исходный код программы

    2. ; Template for console application

    3. .586

    4. .MODEL flat, stdcall

    5. OPTION CASEMAP:NONE



    6. Include kernel32.inc

    7. Include masm32.inc



    8. IncludeLib kernel32.lib

    9. IncludeLib masm32.lib



    10. .CONST

    11. MsgExit DB "Press Enter to Exit",0AH,0DH,0

    12. msgInput DB "Enter 10 words: ", 0AH, 0DH, 0

    13. msgCount DB "Count of words with length >4: ", 0AH, 0DH, 0

    14. .DATA

    15. result dd ?

    16. len dw 4

    17. string db 100 DUP (?) ; input str

    18. rezstr DB 5 DUP (?)

    19. .DATA?

    20. inbuf DB 100 DUP (?)

    21. .CODE

    22. Start:

    23. ;

    24. ; Дан текст 10 слов, разделенных пробелами (одним и более).

    25. ; Определить количество слов, содержащих более 4 символов.

    26. ;

    27. Invoke StdOut, addr msgInput

    28. Invoke StdIn, addr string, LengthOf string

    29. Invoke StripLF, addr string



    30. lea edi, string ; load string adress to edi

    31. mov ecx, 100 ; load size of input buffer for getting strlen

    32. mov al, 0 ; load 0 symbol to search

    33. repne scasb ; find 0

    34. mov ax, 100

    35. sub ax, cx ; size(buf) - rest in cx

    36. mov cx, ax ; difference - strlen + 1

    37. dec cx



    38. lea edi, string

    39. mov al, ' '

    40. mov ebx, 0 ; counter of words

    41. cld

    42. cycle1: cmp cx, 0 ; is end of line?

    43. jle con ; if yes => print result

    44. mov dx, 0 ; wordlen counter

    45. cycle2: scasb ; check another symb to ' '

    46. je endword ; if ' ' - goto checking of wordlen

    47. inc dx

    48. dec cx

    49. cmp cx, 0 ; if is end of line

    50. je endword ; then goto check word

    51. jmp cycle2

    52. endword: cmp dx, len ; if end of word, compare wordlen with given length

    53. jg checkw ; if wl>4 goto inc ebx

    54. jmp nextword ; else just dec cx and goto cycle1

    55. checkw: inc ebx

    56. nextword: dec cx

    57. jmp cycle1

    58. con: mov result, ebx

    59. xor eax, eax

    60. Invoke dwtoa,result,ADDR rezstr

    61. Invoke StdOut,ADDR rezstr



    62. Invoke StdIn,ADDR inbuf,LengthOf inbuf



    63. Invoke ExitProcess,0

    64. End Start



    Рисунок 2 – Работа программы

    Таблица 1. Тесты



    Исходные данные

    Результат

    Ожидаемый результат

    1

    aaa bbbbb ccc dddddddd eeee fffff

    3

    3

    2

    a b

    0

    0

    3

    aaaaaaaaaaaaa b

    1

    1

    1. Вывод

    Изучены команды обработки цепочек и приемы обработки символьной информации.


    написать администратору сайта