Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/114: Рейтинг темы: голосов - 114, средняя оценка - 4.86
 Аватар для Tot
6 / 3 / 0
Регистрация: 25.06.2012
Сообщений: 132

Типичные ошибки в DOS: не отображается кириллица

25.06.2012, 16:56. Показов 24591. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане!
Чтобы не ходить вокруг бочки в поход, сразу перейду к сути: изучаю ассемблер уже несколько недель.
Тщательно, с чувством, с толком, с расстановкой. Дошёл до примеров для практики. Практикую.
Но столкнулся с проблемами в самой ОС Dos.
В Dos попадаю через Total Commander/Интсрументы/Открыть командную консоль.
Есть на данный момент 4 вопроса по компиляции *.asm программ под Dos.
1. Почему не отображается кириллица при выводе например "Привет, свет!" (на русском языке). Вместо этого абракадабра. Как это исправить?
2. Компилирую через команду ml. Например, ml prog01.asm /AT. По частям же типа из asm в obj, а потом из obj в com либо exe не получается. Не хочет работать link.exe. При команде link prog01.obj не создаётся файл prog01.com либо prog01.exe. Почему не работает link.exe?
3. Не выводиться результат работы программ с применением графики. Вместо этого появляется в Windows 7 окошко
с именем "16 bit MS-DOS Subsystem" и
c сообщением:
"C:\Windows\system32\cmd.exe - lifebios.exe"
This system does not support fullscreen mode. Choose 'Close' to terminate the application.
либо такое же самое окошко, но с таким сообщением:
C:\Windows\system32\cmd.exe - prog03.exe
The NTVDM CPU has encountered an illegal instruction.
CS:0000 IP:0117 OP:f0 1b 65 00 f0 Choose 'Close' to terminate the application.
4. Как настроить отладчик CodeView для запуска через команду CV.EXE prog01.com из Dos?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.06.2012, 16:56
Ответы с готовыми решениями:

Не отображается кириллица в DOS
Здравствуйте! У меня в чистой DOS, в программах, не отображается кириллица. DOS 6.22, ставил на флешку, запускаю с ноутбука с железом...

Типичные ошибки WI-FI
Всем привет! Есть wi-fi роутер TP-LINK. К нему подключено 4 компьютера, а при подключений 5,6,7,8 и т.д. у них не работает интернет выдаёт...

Знаете типичные ошибки в ООП? ;)
Прииивет!!! :) :confusion: Вот интересно, какие пунктики вы выделите касаемо ошибок в коде при ООП подходе.:rtfm: Можете не раскрывать...

37
202 / 168 / 11
Регистрация: 30.05.2012
Сообщений: 703
26.06.2012, 08:22
Цитата Сообщение от Tot Посмотреть сообщение
1. Почему не отображается кириллица при выводе например "Привет, свет!" (на русском языке). Вместо этого абракадабра. Как это исправить?
Используется кодировка КОИ-8, а в винде по автомату другая. Надо перекодировать.


Цитата Сообщение от Tot Посмотреть сообщение
C:\Windows\system32\cmd.exe - prog03.exe
The NTVDM CPU has encountered an illegal instruction.
CS:0000 IP:0117 OP:f0 1b 65 00 f0 Choose 'Close' to terminate the application.
Ну это уже в коде ошибка. Наверное, неизвестная комманда (может директивы забыли), или данные выполняются, хотя это наврядли.


Цитата Сообщение от Tot Посмотреть сообщение
4. Как настроить отладчик CodeView для запуска через команду CV.EXE prog01.com из Dos?
Самое быстрое - создать батник, или ярлык.
1
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
26.06.2012, 14:21
Цитата Сообщение от Anonimys
Используется кодировка КОИ-8
Низачод. В консоли по умолчанию используется cp866, в самой виде - cp1251.
Впрочем, cp1251 тоже можно: https://www.cyberforum.ru/asse... ost2123126
В Fatal Commander'e должна быть опция "сохранить как"/"выбрать кодировку".
0
 Аватар для Tot
6 / 3 / 0
Регистрация: 25.06.2012
Сообщений: 132
26.06.2012, 16:38  [ТС]
Цитата Сообщение от Charles Kludge Посмотреть сообщение
Низачод. В консоли по умолчанию используется cp866, в самой виде - cp1251.
Впрочем, cp1251 тоже можно: https://www.cyberforum.ru/asse... ost2123126
В Fatal Commander'e должна быть опция "сохранить как"/"выбрать кодировку".
Написал я этот код. Вот результат в консоли:

Assembling hello.asm
hello.asm (5): error A2008: syntax error : format
hello.asm (7): fatal error A1000: cannot open file : 'include\win32ax.inc'
Прокомментируйте плиз.

А как перекодировать обычный учебный 'hello, world' в cp1251.

Вот код:


Assembler
1
2
3
4
5
6
7
8
9
10
11
; hello-1.asm
; Выводит на экран сообщение "HEllo World!" и завершается.
        .model tiny         ; Модель памяти, используемая для СОM.
        .code               ; Начало сегмента кода.
        org     100h            ; Начальное значение счётчика 100h.
start:  mov     ah,9            ; Номер функции DOS - в AH.
        mov     dx, offset message  ; Адрес строки в DX.
        int     21h         ; Вызов системной функции DOS.
        ret             ; Завершение COM-программы.
message         db      "Привет, свет!", 0Dh, 0Ah, '$'    ; СТрок для вывода.
        end     start           ; Конец программы.
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
26.06.2012, 16:45
Цитата Сообщение от Tot
обычный учебный 'hello, world' в cp1251.
Только в cp866. Найдите редактор, который понимает различные кодировки при сохранении.
0
3 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 10
26.06.2012, 17:55
Советую AsmEditor v2.2d. Простой, легко настраиваемый. Поддерживает DOS/Win кодировки. Сам учу асм, им пользуюсь, даже подсветку синтаксиса себе сделал по принципу изучил команду/директиву - дописал в конфиг
0
 Аватар для Tot
6 / 3 / 0
Регистрация: 25.06.2012
Сообщений: 132
26.06.2012, 18:19  [ТС]
Поставил Far. Зашёл в редактор и поменял через F8 кодировку на нормальную. Сохранил. Перекомпилировал - всё равно адракадабра. Да что ж такое... О_о
0
202 / 168 / 11
Регистрация: 30.05.2012
Сообщений: 703
26.06.2012, 18:29
Цитата Сообщение от Tot Посмотреть сообщение
на нормальную
Вы что имеете в виду под этой фразой?

Есть один перекодировщик SNK Text Decoder 1.0 (Win32 version).
Сам пользуюсь. Перекодирываю при помощи кнопки Win->Koi-8, полученную строку вставляю и все выводится.
1
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
26.06.2012, 19:38
Привет, свет!

ЏаЁўҐв, ᢥв!
0
3 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 10
26.06.2012, 19:49
Должно быть примерно следующее:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
model tiny
        stack 100h
        .data
    message db 'ЏаЁўҐв, ᢥв', 0Dh, 0Ah, '$'       
        .code
start:  mov ax,@data
        mov ds,ax
        mov ah,9           
        mov     dx, offset message  
        int     21h       
        mov ax,4c00h
        int 21h            
        end     start
0
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
27.06.2012, 17:17
Цитата Сообщение от Anonimys Посмотреть сообщение
SNK Text Decoder 1.0 (Win32 version).
Хорошая прога.

Цитата Сообщение от Ballast Посмотреть сообщение
'ЏаЁўҐв, ᢥв'
Именно в такой вид приводит в режиме

Цитата Сообщение от Anonimys Посмотреть сообщение
Win->Koi-8
Anonimus был прав...
0
 Аватар для Tot
6 / 3 / 0
Регистрация: 25.06.2012
Сообщений: 132
27.06.2012, 17:41  [ТС]
А можно ссылку на эту прогу?
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
27.06.2012, 17:43
programmisto, насчет КОИ-8 ни с чем не перепутал? Это UNIX-кодировка.
0
 Аватар для Tot
6 / 3 / 0
Регистрация: 25.06.2012
Сообщений: 132
28.06.2012, 12:09  [ТС]
Всё, проверил. Действительно классный редактор от SNK. Только надо выставлять не Win->KOI, а Win->Alt и тогда всё оторажается в нормальном русском языке.
Спасибо. С первым вопросом разобрался. Перехожу к следующим: 2,3,4.

Добавлено через 51 минуту
Вопрос №2.
Я вообще компилирую так через Dos: ml /c имя_файла.asm
А затем линкую так: doslnk /t имя_файла.obj
А потом вызываю на исполнение сам файл так: имя_файла.com (или имя файла.exe).
Повторюсь...
Не понятно почему для вывода графики в Dos при вызове на исполнение файла появляется вместо результата такое окно:

prog03.exe - Far 2.0.1807 x86
The NTVDM CPU has encountered an illegal instruction.
...
Для ясности привожу сам код:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
; prog03.asm
; Вывод в верхний левый угол экрана весёлой рожицы на синем фоне.
 
CSEG segment
    org 100h
_beg:
    mov ax,0B800h
    mov es,ax
    mov di,0
 
    mov ah,31
    mov al,1
 
    mov es:[di],ax
    mov ah,10h
    int 16h
    
    int 20h
 
    CSEG    ends
    end _beg
0
202 / 168 / 11
Регистрация: 30.05.2012
Сообщений: 703
28.06.2012, 12:21
Цитата Сообщение от Tot Посмотреть сообщение
doslnk /t имя_файла.obj
Странная команда.
Я компилирую

tasm /l file.asm
tlink /t /x file.obj

А затем запускаю.
Лучше использовать TASM.

Добавлено через 53 секунды
Цитата Сообщение от Tot Посмотреть сообщение
для вывода графики
Это не графика, а просто символы.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
28.06.2012, 12:22
Tot, работает и в тасм и в масм
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
; masm dos com #
.286
.model tiny
.code
    org 100h
start:  mov ax,3
    int 10h
    push 0B800h
    pop es
    mov di,0
    mov ax,0F01h
    stosw
    mov ah,0
    int 16h    
    retn
end start
0
202 / 168 / 11
Регистрация: 30.05.2012
Сообщений: 703
28.06.2012, 12:25
Наверное, ось такая...
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
28.06.2012, 12:32
Цитата Сообщение от Anonimys Посмотреть сообщение
Наверное, ось такая...
Запускалась под Хрюшей собирается или так
ActionScript 3
1
2
%masm_path%\bin\ml /AT /c %filename%.asm
%masm_path%\bin\link16 /T %filename%.obj,,,,,
или так
ActionScript 3
1
2
%tasm_path%\bin\tasm %filename%.asm
%tasm_path%\bin\tlink /t/x %filename%.obj
0
202 / 168 / 11
Регистрация: 30.05.2012
Сообщений: 703
28.06.2012, 12:37
Цитата Сообщение от Mikl___ Посмотреть сообщение
%masm_path%\bin\ml /AT /c %filename%.asm %masm_path%\bin\link16 /T %filename%.obj,,,,,
Ну вот именно, а он собирал непонятно чем.

Добавлено через 14 секунд
Точнее линковал.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
28.06.2012, 12:41
Anonimys, по строке
Assembler
1
; masm dos com #
определяется требуемый компилятор, требуемая ось и тип выходного файла, и всё обрабатывается одним бат-файлом, разжовано всё здесь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.06.2012, 12:41
Помогаю со студенческими работами здесь

Текст нормально только при кодировке Кириллица(DOS)
Всем привет! Проблема следующая: у меня на сайте отображается текст из таблицы mysql, но виден нормально только при кодировке...

В textbox не отображается кириллица
Открывает файл, читает латынь и цифры, а родные русские не отображаются, вместо них символы... private void btnOpen_Click(object...

Кириллица отображается кракозябрами
Добрый день, решил запустить Lazarus на виртуалке, создал проект, откомпилировал запускаю всё идёт но в окне проги вместо русских букв...

В приложении не отображается кириллица
Мне нужно выводить русский текст в текстбокс. Английский отображаеться нормально, но вместо русского ромбы с знаками вопросов. В манифесте...

TexStudio: не отображается кириллица
Начал разбираться в Техе, и тут такой, может кто объяснить, в чем я туплю?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru