Сейчас на форуме: _MBK_, Adler (+5 невидимых)

 eXeL@B —› Вопросы новичков —› вопрос по RadAsm 2
Посл.ответ Сообщение

Ранг: 2.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 27 апреля 2011 19:44 · Поправил: magistr011
· Личное сообщение · #1

Всем привет
Добился я своего в этом радасме)) Теперь не могу разобраться как вывести тоже самое только по русски ))
вместо Hello Привет
Если тупо в коде программы поменять английсккое слово на русское, то вместо русского слова появляются крючки всякие ((
вот программа:
dc8c_27.04.2011_EXELAB.rU.tgz - hello.exe
Вот код:

.model small
.stack 256h
.data
szHello db 'Hello world !!!','$' ; Если тут написать по русски: 'Привет мир','$' то ничего не получается
.code
mov ax,@data
mov ds,ax
mov es,ax
mov ah,9h
lea dx,szHello
int 21h
mov ah,1h
int 21h
mov ax,4c00h
int 21h
end


Вот что по русски получается:




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 27 апреля 2011 20:03
· Личное сообщение · #2

Ты пишешь в ASCII а надо в DOS кодировке



Ранг: 2.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 27 апреля 2011 20:06
· Личное сообщение · #3

а как поменять кодировку в радасме???




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 27 апреля 2011 20:38
· Личное сообщение · #4

Используй шрифт Terminal

P.S. не плоди темы, если всё касается RadASM

-----
EnJoy!





Ранг: 57.7 (постоянный), 49thx
Активность: 0.070
Статус: Участник

Создано: 27 апреля 2011 20:45
· Личное сообщение · #5

magistr011 попробуй запустить на своем компьютере файл в аттаче (не забудь перезагрузить машину ).

f7c9_27.04.2011_EXELAB.rU.tgz - 1252.reg



Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 27 апреля 2011 20:56 · Поправил: _ruzmaz_
· Личное сообщение · #6

а при чем тут шрифт?
это потому, что исходник в ANSI 1251, а надо в OEM 866 (либо делать так, чтоб прога сама возилась с кодовыми страницами во время работы, но это морока какая-то) - не знаю как с заданием кодировки исходника в радасме, но всегда можно воспользоваться, например, Notepad++

upd
глянул RadASM 2.2.2.0 - ничего связанного с кодировкой не нашел, сомневаюсь что в радасме вообще можно задать кодировку при сохранении или во время редактирования

| Сообщение посчитали полезным: magistr011

Ранг: 2.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 27 апреля 2011 21:46
· Личное сообщение · #7

Jupiter пишет:
Используй шрифт Terminal

Годится, он как раз в кодировке OEM, только весь код тоже в этой кодировке получается и компилятор почему-то ругается потом...

inffo пишет:
попробуй запустить на своем компьютере файл в аттаче

запустил и так и не понял что изменилось))) Не помогло думаю, а что за файлик? Он мне в реестр что-то добавил...

_ruzmaz_ пишет:
всегда можно воспользоваться, например, Notepad++

Я как раз хотел написать, что в блокноте кодировку попробовал поменять))
Блокнот рулит!!!
Спасибо всем
Вот что получилось:



959c_27.04.2011_EXELAB.rU.tgz - Hello2.exe




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 28 апреля 2011 13:33
· Личное сообщение · #8

Ха, ничего, кроме пустой консольки ))

ntvdm запускается, подгружается hlvdd.dll, которая зачем-то через ntdll.dll!LdrpCallInitRoutine пытается открыть дров FEnteDev...

Что, виндовая виртуальная машина неспособна dos-программы нормально эмулировать?

-----
IZ.RU





Ранг: 57.7 (постоянный), 49thx
Активность: 0.070
Статус: Участник

Создано: 28 апреля 2011 15:21
· Личное сообщение · #9

magistr011 пишет:
запустил и так и не понял что изменилось))) Не помогло думаю, а что за файлик? Он мне в реестр что-то добавил...


Вообще, перед тем как что-нибудь добавить в реестр надо посмотреть, что добавляешь (можно блокнотом)

И поиск в Google ни кто не отменял, пишешь "проблема с отображением русских шрифтов в DOS" и радуешься результату

Вот еще один вариант из нета:

Code:
  1. Открываем реестр, находим ключ HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Control \KeyboardLayout \DosKeybCodes и изменяем значение 00000409 на "ru". После этого открываем файл autoexec.nt (он находится в папке %SystemRoot%\system32) и добавляем строку lh %SystemRoot%\system32\kb16.com ru Перегружаем компьютер и убеждаемся, что ХР научилась читать Досовскую кодировку




Ранг: 2.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 28 апреля 2011 21:35
· Личное сообщение · #10

Всем спасибо. Тему закрываю, ответ найден...


 eXeL@B —› Вопросы новичков —› вопрос по RadAsm 2
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати