Не видно русских букв. Почему так?

Тема в разделе "WASM.BEGINNERS", создана пользователем ajak, 17 авг 2009.

  1. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    Код (Text):
    1. text    segment
    2. assume  cs:text, ds:text
    3. begin:  mov AX,data    
    4.     mov DS,AX      
    5.     mov AH,41h     
    6.     mov DX, offset fname
    7.     int 21h    
    8.     jc  error       ; Переход, если ошибка
    9.     mov AH,09h      ; Вывод сообщения
    10.     mov DX, offset msgok; об удалении
    11.     int     21h    
    12. fin:    mov AX,4c00h    ; Завершение программы
    13.     int 21h     ; Вызов DOS
    14. ; блок анализа ошибок
    15. error:  cmp AX,02h      ; Файл не найден?
    16.     je  notfound    ; Да, вывести сообщение
    17.     cmp AX,03h      ; Путь не найден?
    18.     je  wrongdir    ; Да, вывести сообщени
    19.     cmp AX,05h      ; Доступ запрещен?
    20.     je  noaccess    ; Да, вывести сообщени
    21.     jmp fin     ; Неизвестная ошибка
    22. ; Блок вывода сообщений
    23. notfound:mov    Dx, offset msg1
    24.     jmp write
    25. wrongdir:mov    DX, offset msg2
    26.     jmp write
    27. noaccess:mov    DX, offset msg3
    28. write:  mov AH,09h
    29.     int     21h    
    30.     jmp fin    
    31. text    ends           
    32. data    segment
    33. fname   db 'c:\1.txt',0    
    34. msgok   db 'Файлн удалён1$'
    35. msg1    db 'Файл не найден2$'
    36. msg2    db 'Каталог неверен3$'
    37. msg3    db 'Доступ запрещён4$'
    38. data    ends
    39. stk segment stack
    40.     db  256 dup(0)
    41. stk ends
    42.     end begin
    Вот исходник. Транслирую,линкую всё работает но вместо русских букв какая-то бука!!! 1)Кто скажет что по этому поводу или у меня чтото с виндой
    [​IMG]2)Почему модуль весит 1614 байт. При просмотреть чере F3 -много нулей. КАк включить опртимизацию. Почему много нулей?
    Компилю тасмом
    Код (Text):
    1. rem Просто меняйте номер пример с 1-1 на *-*
    2. rem Copyright ajak. Александр Якушев
    3. @echo off
    4. tasm /z /zi /n 1-1 1-1 1-1  
    5. if errorlevel 1 goto err
    6. tlink /v /x 1-1,1-1
    7. goto end
    8. :err
    9. echo Ошибка трансляции!
    10. goto fin
    11. :end
    12. echo Конец сеанса
    13. :fin
    14. echo .
     
  2. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    http://slil.ru/27906309
    там рисунок
     
  3. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    А вы в какой кодировке файл сохраняете?
    Надо в DOS-кодировке.

    И еще, желательно явно указать видеорежим при запуске программы.
    Код (Text):
    1.     mov    ax,0x0003
    2.     int      10h
     
  4. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    DOS-кодировка - CP866
     
  5. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    видимо, ты исходник правишь в кодировке win (СР-1251, ANSI), а в консольном окне - кодировка дос (CP-866, OEM).

    выход: писать в дос-редакторе (FAR, DN) или редакторе, который позволяет загружать "как" текст ДОС (и сохранять соответственно)
     
  6. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    В блокноте пишу
     
  7. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    Почему много нулей?
     
  8. zhindos

    zhindos New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    142
    Линкуй как *.com, не будет нулей =)))
     
  9. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    ТАк как мне делать чтобы русские отображалисб?
    Вдругом редакторе чтоль набирать?
     
  10. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    iconv -f=utf8 -t=cp866 src-file.asm >dst-file.asm
     
  11. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    Ух, это что такое. Я такого не знаю
     
  12. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    Понял это ЗРЗ
    В общем у меня что то с виндой потому что даже сообщения компилятора как то неправильно выводятся
    http://slil.ru/27907392
    Посмотрите, скажиет что можно сделать ,решить эту проблему не переустанавливая винду
     
  13. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    это выводятся коменты
     
  14. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Microedition в 3 посте тебе ясно сказал. смени редактор или сохраняй в другой кодировке
    Файл>Сохранить как Кодировака
    если блокнот не тянет, то попробуй там Bred, Uniqway Poetic, Notepad2, ..., какую нибудь студию для asm
     
  15. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    Ну да. А почему они нормально то не отображаются
     
  16. Noman

    Noman New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2009
    Сообщения:
    27
    ajak
    сколько вариантов сказать одно и тоже ^^
    Вывод: сохраняйте правильно! или смените кодировку консоли вызовом chcp 1251! сохраняйте правильно! или смените кодировку консоли вызовом chcp 1251!
    боже мой...
     
  17. ajak

    ajak New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2007
    Сообщения:
    463
    Ух, я это зделал всё :dntknw: ничего не помогает
     
  18. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    что вы сделали. файл в студию.
     
  19. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    Дайте исходник, я для специально вас сохраню его в DOS-кодировке.
     
  20. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    вот это пурга! :lol:

    попробуй такой исходник:
    Код (Text):
    1. text    segment
    2. assume  cs:text, ds:text
    3. begin:  mov AX,data    
    4.     mov DS,AX      
    5.     mov AH,41h     
    6.     mov DX, offset fname
    7.     int 21h    
    8.     jc  error       ; ЏҐаҐе®¤, Ґб«Ё ®иЁЎЄ 
    9.     mov AH,09h      ; ‚лў®¤ б®®ЎйҐ­Ёп
    10.     mov DX, offset msgok; ®Ў г¤ «Ґ­ЁЁ
    11.     int     21h    
    12. fin:    mov AX,4c00h    ; ‡ ўҐа襭ЁҐ Їа®Ја ¬¬л
    13.     int 21h     ; ‚맮ў DOS
    14. ; Ў«®Є  ­ «Ё§  ®иЁЎ®Є
    15. error:  cmp AX,02h      ; ” ©« ­Ґ ­ ©¤Ґ­?
    16.     je  notfound    ; „ , ўлўҐбвЁ б®®ЎйҐ­ЁҐ
    17.     cmp AX,03h      ; Џгвм ­Ґ ­ ©¤Ґ­?
    18.     je  wrongdir    ; „ , ўлўҐбвЁ б®®ЎйҐ­Ё
    19.     cmp AX,05h      ; „®бвгЇ § ЇаҐйҐ­?
    20.     je  noaccess    ; „ , ўлўҐбвЁ б®®ЎйҐ­Ё
    21.     jmp fin     ; ЌҐЁ§ўҐбв­ п ®иЁЎЄ 
    22. ; Ѓ«®Є ўлў®¤  б®®ЎйҐ­Ё©
    23. notfound:mov    Dx, offset msg1
    24.     jmp write
    25. wrongdir:mov    DX, offset msg2
    26.     jmp write
    27. noaccess:mov    DX, offset msg3
    28. write:  mov AH,09h
    29.     int     21h    
    30.     jmp fin    
    31. text    ends           
    32. data    segment
    33. fname   db 'c:\1.txt',0    
    34. msgok   db '” ©«­ г¤ «с­1$'
    35. msg1    db '” ©« ­Ґ ­ ©¤Ґ­2$'
    36. msg2    db 'Љ в «®Ј ­ҐўҐаҐ­3$'
    37. msg3    db '„®бвгЇ § ЇаҐйс­4$'
    38. data    ends
    39. stk segment stack
    40.     db  256 dup(0)
    41. stk ends
    42.     end begin
    ;)