Помогите розобратся в программе

Тема в разделе "WASM.BEGINNERS", создана пользователем yokohama, 4 дек 2011.

  1. yokohama

    yokohama New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2011
    Сообщения:
    13
    Я не могу понять как указать начало строки в памяти, и как посмотреть где изменился символ.
    Код (Text):
    1. MASM
    2. MODEL small
    3. STACK 256
    4. .data
    5. fnd db 0ah,0dh,'Символ найден','$'
    6. nochar db 0ah ,0dh,'Символ не найден.','$'
    7. mes1 db 0ah,0dh,'Исходная строка:','$'
    8. string db "Поиск символа в этой строке.",0ah,0dh,'$'                                  
    9. mes2 db 0ah,0dh,'Введите символ, на который следует заменить найденный'
    10.    db 0ah,0dh,'$'
    11. mes3 db 0ah ,0dh,'Новая строка: ',"$"
    12. .code
    13. assume ds:@data,es:@data                                                                  
    14. main:                                                                                                    
    15. mov ax,@data                                                                                    
    16. mov ds,ax
    17. mov es,ax                                                                                          
    18. mov ah,09h
    19.    lea dx,mes1
    20.    int 21h                                                                                              
    21.    lea dx,string
    22.    int 21h                                                                                              
    23.    cld                                                                                                  
    24.    lea di,string                                                                                        
    25.    mov dx,28                                                                                          
    26. cycl:
    27.   mov al,'a'                                                                                          
    28. repne scan string
    29.    je found                                                                                            
    30.    mov ah,09h
    31.    lea dx,nochar                                                                                    
    32.    int 21h
    33.    jmp exit
    34. found:
    35.    mov ah,09h
    36.    lea dx,fnd                                                                                          
    37. int 21h
    38.    dec di
    39. new_char:                                                                                              
    40.    mov ah,09h
    41.    lea dx,mes2
    42.    int 21h
    43.    mov ah,01h                                            
    44.    int 21h                                                                                                  
    45.    stos string                                                                                            
    46.  mov ah,09h
    47.    lea dx,mes3
    48.    int 21h
    49.    lea dx,string
    50.    int 21h
    51.    inc di
    52.    jmp cycl
    53. exit:
    54.    mov ax,4c00h
    55.    int 21h
    56. end main
     
  2. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    ;1a.
    mov ax, offset nachalostroki
    ;1b.
    lea ax, nachalostroki
    ;2.
    new_char:
    mov ax, 9
    mov dx, di
    int 21h

    ;кто вас этому учит. это было актуально в 90х
     
  3. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    yokohama
    Строка string начинается соответсвено с метки string :))
    Так что замени свое nachalostroki на string и будет тебе счастье.
    Чтобы уведеть как изменился символ просто выведи строку на экран естественно по метке string.
     
  4. yokohama

    yokohama New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2011
    Сообщения:
    13
    У нас препод псих.

    А как её вывести? Я знаю только как вывести содержимое текстового файла..
     
  5. yokohama

    yokohama New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2011
    Сообщения:
    13
    Куда это вставить?