Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2017, 17:30   #1
garrygarry
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 36
По умолчанию masm32 xor

Помогите с простой задачкой.

Даны две hex строки

c0cdfe3319a1ad0fe5d6dccd35cfe7d8493 2895c
b0ec6c9f7257fe13413cf3e84f83d83614e 5595c

как их проксорить (xor) и вывести результат в hex на экран?
garrygarry вне форума Ответить с цитированием
Старый 06.02.2017, 03:13   #2
garrygarry
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 36
По умолчанию

Люди, правда, помогите пожалуйста.
Есть hex данные в формате обычного текста, как их преобразовать для работы? а потом и обратно.
подскажите чайнику

Понимаю идею. Может есть способ проще, чем
'0' => 30h
...
'9' => 39h
-------------

'A' => 41h
...
'F' => 46h

Последний раз редактировалось garrygarry; 06.02.2017 в 03:22.
garrygarry вне форума Ответить с цитированием
Старый 06.02.2017, 05:30   #3
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Есть стандартные функции для перевода из чисел в символы (hex2asc),
и наоборот - из символов в числа (asc2bin).
Твоя - вторая:
Код:
;Fasm code...
;-------------------------------------------------------------------
hex2asc:                 ; Функция переводит числа в символы
   pusha                 ; Вход:  АХ = число, BX = система счисления
   xor   cx,cx           ; Выход: на экране
isDiv:                   ;
   xor   dx,dx           ;
   div   bx              ;
   push  dx              ;
   inc   cx              ;
   or    ax,ax           ;
   jnz   isDiv           ;
isOut:                   ;
   pop   ax              ;
   cmp   al,9            ;
   jle   noHex           ;
   add   al,7            ;
noHex:                   ;
   add   al,30h          ;
   int   29h             ;
   loop  isOut           ;
   popa                  ;
retn                     ;
;===================================================================
asc2bin:                 ; Процедура переводит символы в числа
   xor   cx,cx           ; Вход:  ВХ = система счисления
   xor   ax,ax           ; Выход: АХ = число в указанной СС
nextDigit:               ;
   mov   ah,1            ;
   int   21h             ;
   cmp   al,13           ;
   je    @f              ;
   and   ax,0Fh          ; переводим символ в цифру
   xchg  ax,cx           ; меняем последнее и ранее/введёное число
   xor   dx,dx           ; 
   mul   bx              ; умножаем AX на BX. Результат в АХ
   add   cx,ax           ; прибавляем его к СХ. Теперь в СХ введёное число
   jmp   nextDigit       ; следующий символ..
@@:                      ;
   mov   ax,cx           ;
retn
Нашедшего выход - затаптывают первым..

Последний раз редактировалось R71MT; 06.02.2017 в 05:34.
R71MT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несмотря на подключение masm32.inc и masm32.lib не подтягиваются функции stdin и stdout dFender Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 15.12.2016 13:24
XOR Кащей Общие вопросы C/C++ 8 16.09.2013 18:50
c Xor frommars Общие вопросы C/C++ 4 03.10.2012 18:30
XOR Pascal 0479 Помощь студентам 2 15.09.2010 08:01