Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Преобразование прописных букв в цифры 
:(
    Опции темы
Crusher
Дата 22.5.2007, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 19.4.2007

Репутация: нет
Всего: нет



Подскажите, пожалуйста, как можно заменить в строке прописные буквы цифрами (например, A - 1, B - 2, C -3 и т.д.) с использованием оператора сложения? Первые 9 цифр - без проблем: прибавляем к ASCII-коду цифры смещение на нужный символ. Как дальше - не догнать.
PM MAIL   Вверх
Mikl__
Дата 25.5.2007, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 18.5.2007

Репутация: нет
Всего: 1



ASCII код буквы 'A'-41h, 'B'-42h,...,'I'-49h ASCII код цифр '0'-30h,'1'-31h,'9'-39h из латинских прописных букв цифры можно получить 1) сложением, 2) сложением по модулю 2, 3) вычитанием. Пусть в переменной letters находится строка '@ABCDEFGHI' тогда
Код

.data
letters db '@ABCDEFGHI',0
.code
;1) сложение по модулю 2
xor dword ptr letters,70707070h
xor dword ptr letters+4,70707070h
xor word ptr letters+8,7070h
;2) вычитание
sub dword ptr letters,10101010h
sub dword ptr letters+4,10101010h
sub word ptr letters+8,1010h
;3) сложение арифметическое
;10101010h=269488144d     -269488144d=0EFEFEFF0h
add dword ptr letters,0EFEFEFF0h
add dword ptr letters+4,0EFEFEFF0h
add word ptr letters+8,0EFF0h
ты получишь строку '0123456789'

Это сообщение отредактировал(а) Mikl__ - 30.5.2007, 06:41
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0370 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.