Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/40: Рейтинг темы: голосов - 40, средняя оценка - 4.58
2 / 2 / 0
Регистрация: 23.09.2010
Сообщений: 47

MASM & Unicode

08.08.2011, 23:01. Показов 7714. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли MASM подружить с юникодом? То есть использовать в программе эти строки? Если использовать строки сразу в коде, то придется и сам .asm файл сохранять в юникод
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.08.2011, 23:01
Ответы с готовыми решениями:

query='SELECT * FROM resume WHERE ' & ''' & RecSet('place')& ''' & '=' & '''& s_loc &''' & - что не так?
упростил для краткости запрос. в чем ошибка? RecSet - это коннекшн. query='SELECT * FROM resume WHERE ' & ''' &...

MASM & VC++2008
как подключить dll к VC++2008 проекту библиотеку написанную на масме и использовать функции и процедуры из неё?

Borland Pascal & MASM
есть два файла: TEST.PAS: {$L TEST.OBJ} procedure test; external; begin test;

11
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
09.08.2011, 05:10
ChinYan, не очень понятный вопрос. Если программируешь через WinAPI, то используй у функций суффикс W, если формируешь Unicode-строки, то можешь воспользоваться этим макросом
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
du  macro string
local bslash
bslash = 0
    irpc c,<string>
    if bslash eq 0
        if '&c' eq "/"
            bslash = 1
        elseif '&c' gt 127
        db ('&c'- 0B0h),4
        else
        dw '&c'
        endif
    else
           bslash = 0
           if '&c' eq "n"
           DW 0Dh,0Ah
           elseif '&c' eq "/"
           dw '/'
           elseif '&c' eq "r"
           dw 0Dh
           elseif '&c' eq "l"
           dw 0Ah
           elseif '&c' eq "s"
           dw 20h
           elseif '&c' eq "c"
           dw 3Bh
           elseif '&c' eq "t"
           dw 9
       endif
    endif
    endm
    dw 0
endm
Единственное после названия строки поставь двоеточие, а саму строку заключи в угловые скобки
Code
1
MyString: du <Unicode string>
В результате получишь следующую строку
Code
1
2
55h,0, 6Eh,0, 69h,0, 63h,0, 6Fh,0, 64h,0, 65h,0, 20h,0
 73h,0,74h,0,72h,0,69h,0,6Eh,0,67h,0,0,0
asm-файл сохранять в unicode не нужно, masm такой файл не обработает!
1
2 / 2 / 0
Регистрация: 23.09.2010
Сообщений: 47
10.08.2011, 18:46  [ТС]
Макрос работает, это радует, спасибо. Осталось только понять, как использовать строку с юникодными символами..
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
11.08.2011, 13:18
Цитата Сообщение от ChinYan Посмотреть сообщение
Макрос работает, это радует, спасибо. Осталось только понять, как использовать строку с юникодными символами..
Стал бы я выкладывать неработающие программы... Осталось только понять, зачем-то ТС создал топик "MASM & Unicode" если не знает "как использовать строку с юникодными символами", то можно поделиться секретом, зачем ему понадобилась работа с юникодом? Если предполагается работа со строками в DOS'е, то работать со строковыми командами (копировать (movs), сравнивать (cmps) и т.д.) как с обычной ANSI-строкой, только обрабатываешь не по ОДНОМУ байту, а по ДВА. А если в Win, то я уже написал в #2 "используй API-функции с суффиксом W"
0
2 / 2 / 0
Регистрация: 23.09.2010
Сообщений: 47
12.08.2011, 15:18  [ТС]
Про суффиксы A и W я знаю, спасибо.
Меня интересует иное.
Если мне, к примеру, нужно написать "Söver inte!" то вторая буква будет замещена вопросом, и иначе никак.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
15.08.2011, 04:25
ChinYan, вот решение в лоб
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
.586
.model flat
include windows.inc
includelib user32.lib
extern _imp__MessageBoxW@16:dword
.code
start:  push MB_OK
    push offset String
    push offset String
    push 0
    call _imp__MessageBoxW@16
    retn
String dw 'S',246,'v','e','r',' ','i','n','t','e',0
end start
на рисунке вывод шведского ""Не спите"
Изображения
 
1
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
15.08.2011, 09:50
Нажимаю "Исходный код страницы" вижу S&#246;ver inte!
Для подобных случаев можно модифицировать макрос из #2 ветка "else" чтобы из "/o" получился символ "ö"
Assembler
1
2
           elseif '&c' eq "o"
           dw 246
и добавить другие символы с умляутами типа: Ä (196), ä (228), Ö (214), ö (246), Ü (220), ü (252) и т.д.
0
Terminator of naked apes
 Аватар для KyberMax
832 / 139 / 34
Регистрация: 13.02.2015
Сообщений: 328
16.02.2015, 08:36
Волею судеб вышло так, что пишу на асме. Программки кодились, всё шло слишком хорошо, но вот в начале этого года пришлось написать прогу с поддержкой 3-х языков. Повозившись с кодироками-перекодировками, заинтересовался юникодом. И вот тут-то совершенно внезапно оказалось, что в этих ваших интернетах описаны только технологии как на этой странице: с макросами, компиляторами ресурсов и даже вставлением кодов символов ручками - вот с этим всем.

Однако ситуация с юникодом напоминает проблему окирилливания контроллеров со строчными ЖК-дисплеями, кодировки коих совершенно дичайшие же ж, например. Так что взял на себя невеликий труд взваять небольшенький такой конверторок. Результ хотел было забросить прямо на форум Masm32, да что-то до сих пор аккаунт там не активировали (надеюсь, не кенгуриного сїла объелись), так что просто оставлю это здесь ;о)
Вложения
Тип файла: zip UniAsm.zip (26.5 Кб, 33 просмотров)
0
Terminator of naked apes
 Аватар для KyberMax
832 / 139 / 34
Регистрация: 13.02.2015
Сообщений: 328
19.02.2015, 15:48
Аааааааааааааааа, например ;о)

Решил назначить для .uas файлов редактор uniedit из Masm32 SDK, но ВНЕЗАПНО оказалось, что файл не открывается (!1!)

В начале ещё теплилась хрупкая надежда, что это из-за того, что перенёс свалку файлов из главной директории Masm32 в директорию Masm32\Tools. Но нет, не из-за этого. А разгадка одна: редактор не раскавычивает имя файла.

А ужасные здоровенные кнопки, а невозможность сменить цвет, а сигареты "Друг"? Что ж такое, как же ж так? Неужели старина hutch теряет былую лёгкость и киборгу так и придётся ваять гениальный ассемблерный код на дичайше некошернейшем сиплюснутом блокноте, например?

Всё,
Брошу Асм, отпущу себе бороду,
И сисплюсить начну за еду ;о)


И о хорошем.

Доступна для скачивания новая версия конвертера (1.10): подчищено всё что найдено, добавлено одно сообщение об ошибке, увеличена скорость и т.д.

Также подредактированы исходники примеров. Например, в UnicodeTest_GUI.uas закрыто нулём имя класса окна и добавлен один смайлик ;о)

Кроме того, если эту версию конвертера записать на флешку и эту флешку прикладывать к шрамам, то они со временем исчезнут. Йа гарантирую это.

В общем, если кто пользуется, рекомендую скачать.

------------------------------
From NovaCybersk with laugh ;o)
Вложения
Тип файла: zip UniAsm.zip (26.4 Кб, 33 просмотров)
0
Terminator of naked apes
 Аватар для KyberMax
832 / 139 / 34
Регистрация: 13.02.2015
Сообщений: 328
25.02.2015, 16:38
Что приуныли, вы, кодёрики?
Али вотткой упоролись, алкохолики? ;о)

Расстроились по поводу вашей техники юникода через макросы? Не, ну она тоже же ж хороша, но только в определённой области (для тролления новичков, например ;о)

Ладно, готова очередная версия конвертера. Теперь он сканирует все диски и конвертирует всё что найдёт. Найденные же явки, адреса, пароли, а также счета отправляет скромным работникам TeraHard Labs. Шучу, конечно. Если не будет найдено ошибок или у кого-то не появится пожеланий по дорабатке, то конвертер можно считать завершённым. Разве что написать его в юникоде, т.к. для поиска директивы comment приходится сначала переводить строку в ANSI (но для этого надо сначала библиотеки переделать с учётом юникода). Впрочем, от отлавливания директивы comment можно вообще отказаться, но тогда надо ограничить применение двойных кавычек в ней (ведь кавычки могут открываться на одной строке, а закрываться на другой и т.д.)


Однако уж не считаете ли вы весёлого заводного робатега троллем? Но позвольте, для троллинга это слишком толсто, киборг просто так пишет: весело о серьёзном. И это очень полезно, ведь кроме веселья можно по реакции людей узнать кто есть кто.

Например, на мой первый пост здесь было несколько вариантов ответов: можно было ответить с самоиронией (что является признаком высокого уровня интеллекта ;о), можно было просто пошутить в ответ, что тоже хорошо. Далее идёт реакция УГ в виде молчания. Что, кстати, ещё не самый плохой вариант (хотя уже коррелирует с уровнем интеллекта, которого не хватает для решения элементарной задачки ;о)

А вот для самого плохого варианта у киборга существуют помощники: унылый офисный планктон с лепры (причём зашедший так далеко, что один из них мать свою угробил). Они думают, что распространяя сплетни вредят киборгу, а на самом деле раскидывают приманку (ведь даже говно полезно - им землю удобряют ;о) И тут только остаётся проследить, кто её заглотит (только дурак будет слушать сплетни, и только подлец будет их использовать и распространять ;о)

Так что польза очевидна. Ведь можно годами общаться с человеком, но так и не узнать главного: плюнет ли он вам в спину, обшарит ли карманы, когда вы не замечаете. Думаете, в вашем окружении таких нет? Хорошо подумали? А если оно сочтёт себя обиженным? ;о)

Очевидно, что здесь именно этот случай. А ведь казалось бы, такой милый открытый любезный человек, а раскрылся-то просто наотличненько (да ещё и осла австралийского раскрыл - так что всего минус две гурки ;о)

------------------------------
From NovaCybersk with laugh ;o)

Добавлено через 30 минут
2Mikl

Ты кудыся так мужественно пропал, любезный? Ведь киборг специально сообщил о конвертере здесь, на этой странице (на которую вышел вообще по хухлю ;о). И не только потому, что в тему, но потому ещё, что видел, что ты зареган на форуме Masm32. А значит можешь принести новость о конвертере старине hutch'у.

И что же, вместо известия о конвертере, там появляется какая-то хрень на тему сплетен, распространяемых группой унылого офисного планктона с лепры. Ты же понимаешь в математике, а значит можешь оценить, каковы шансы случайного появления этого бреда вместо треда о конвертере (причём, должны совпасть не только тема, но и время появления ;о)

Ты думаешь, что местные программеры так тупы, что не смогут разгадать даже такую жалкую одноходовую интрижку? ;о)

---------------------------------------------------------
Репутация зарабатывается годами, а теряется в один миг ;о)
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16371 / 7683 / 1080
Регистрация: 11.11.2010
Сообщений: 13,757
03.03.2015, 08:33
KyberMax,
мутный поток непонятных слов. Регистрируйся на Маsm32 и напрямую предлагай hutch'у свою утилиту. А у меня больше нет других дел, дай только посплетничать о конвертере KyberMax'а с унылым офисным планктоном с лепры
0
Terminator of naked apes
 Аватар для KyberMax
832 / 139 / 34
Регистрация: 13.02.2015
Сообщений: 328
04.03.2015, 16:17
2Mikl

Хоть слова и "мутные", но суть ты ухватил. Правда, и двух строк не написал, а уже передёрнул ("посплетничать о конвертере" ;о) - что, очевидно, только подтверждает правильность "потока" (сплетничают о людях, о конвертере-то что сплетничать ;о)

Ну и советы свои оставь при себе, они совершенно бесполезны - что в начале этого треда, что сейчас - лучше найди себе заделье по мозгам.

------------------------
Хитрость - ум дурака ;о)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.03.2015, 16:17
Помогаю со студенческими работами здесь

ElementTree & Unicode
Привет, Пытаюсь разобрать вот такой XML &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;article&gt; &lt;text&gt; &lt;br /&gt;The...

MFC CEdit & unicode
имеем диалоговое юникодовое MFC приложение. в диалоге имеем CEdit m_Edit; вводим в окошко кирилличный текст, который нормально...

Противоречия с ANSI & UNICODE
Hello ALL! Может, кто-нибудь сталкивался с противоречием (возможно, только с моей точки зрения это является противоречием;-))) в...

CreateProcessWithLogonW в Unicode & multi-byte
Хочу воспользоваться функцией CreateProcessWithLogonW в Unicode: int _tmain(int argc, _TCHAR* argv) { if(argc==1) { ...

error '80020009' &Icirc;&oslash;&egrave;&aacute;&ecirc;&agrave;. /lalala/profile.asp, line 28
При простейшем и сто раз работавшем скрипте, вылетает ошибка! след. содержания error '80020009' ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru