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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2017, 19:26   #31
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

garrygarry, ты сам запутался и прицепом тащишь нас туда-же..
Например, вот это - текстовый ASCII-файл, а ты его называешь 'HEX-файл':

Цитата:
445C7A8007A93D8733188288BB320A8FE2D EBD2AE1B47F0F50BC10BAE845C094D61967 F63C7DD183914A4AE452C9F6AD5D462CE3D 277798075B107615C1A8A3050863AD64A87 AE8A2FE83C1AF1A8403CB53F53E486D8511 DAD8A04887E5B23522CD470243453A299FA 9E77237716103ABC11A1DF38855ED6F2EE1 87E9C582BA6
Как я понял, ты читаешь именно эти данные, и хочешь из каждой пары символов (начиная с 44) сделать соответствующий HEX-байт (для 44 должно получиться 44h, и т.д.). В итоге, получишь двоичный файл с таким\текстовым содержимым. Именно этим занимается твоя программа:

Цитата:
D\zЂ.©=‡3.‚€»2.ЏвЮЅ*бґ..Pј.єиEА”Ц.g ц<}Сѓ‘JJдRЙц*]F,гТwyЂu±.a\.Љ0P†:ЦJ‡®Љ/и<.сЁ@<µ?Sд†ШQ.*Љ.€~[#R,Фp$4Sў™ъћw#w..:ј.ЎЯ8…^Цто.~њX+¦
Если это так, то ты должен сказать, что тебе нужна функция преобразования 'ASC-to-HEX', а не наоборот - 'HEXTOA'. Причём это не обычное\побайтное преобразование, а преобразование слова-в-байт. Неужели трудно показать, что у тебя было, и что ты хочешь получить в итоге?
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 23.07.2017, 19:35   #32
garrygarry
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 36
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
garrygarry, ты сам запутался и прицепом тащишь нас туда-же..
Например, вот это - текстовый ASCII-файл, а ты его называешь 'HEX-файл':



Как я понял, ты читаешь именно эти данные, и хочешь из каждой пары символов (начиная с 44) сделать соответствующий HEX-байт (для 44 должно получиться 44h, и т.д.). В итоге, получишь двоичный файл с таким\текстовым содержимым. Именно этим занимается твоя программа:



Если это так, то ты должен сказать, что тебе нужна функция преобразования 'ASC-to-HEX', а не наоборот - 'HEXTOA'. Причём это не обычное\побайтное преобразование, а преобразование слова-в-байт. Неужели трудно показать, что у тебя было, и что ты хочешь получить в итоге?
D\zЂ.©=‡3.‚€»2.ЏвЮЅ*бґ..Pј.єиEА”Ц.g ц<}Сѓ‘JJдRЙц*]F,гТwyЂu±.a\.Љ0P†:ЦJ‡®Љ/и<.сЁ@<µ?Sд†ШQ.*Љ.€~[#R,Фp$4Sў™ъћw#w..:ј.ЎЯ8…^Цто.~њX+¦



Именно это и хочу получить. Супер!
garrygarry вне форума Ответить с цитированием
Старый 23.07.2017, 23:14   #33
garrygarry
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 36
По умолчанию

Если в переменной Hexstring убрать 00, то выводит текст.. c 00 - никак.. Я так понимаю эти 00 не победимы..


Цитата:
.686
.MODEL FLAT, STDCALL
OPTION CASEMAP:NONE
INCLUDE \masm32\INCLUDE\windows.inc
INCLUDE \masm32\INCLUDE\kernel32.inc
INCLUDE \masm32\INCLUDE\user32.inc
INCLUDELIB \masm32\lib\user32.lib
INCLUDELIB \masm32\lib\kernel32.lib
INCLUDE \masm32\INCLUDE\masm32.inc
INCLUDELIB \masm32\lib\masm32.lib

.DATA

HexString DB "00692063616e277420746f20646f206974 ", 0 ;i can't to do it

.DATA?

HexBuffer DB 3 DUP(?)
TxtBuffer DB 1024 DUP(?)

.CODE

HexStr2TxtStr PROC USES ebx esi edi lpszHexString:DWORD, lpszTextBuffer:DWORD, szHexBuffer:DWORD

mov ebx, szHexBuffer
xor eax, eax
mov esi, lpszHexString
xor ecx, ecx
mov edi, lpszTextBuffer

@@:

mov ax, WORD PTR [esi+ecx*2]
mov WORD PTR [ebx], ax
push ecx
invoke htodw, ebx
pop ecx
mov WORD PTR [edi+ecx], ax
inc ecx
cmp BYTE PTR [esi+ecx*2+1], 0
jne @B

ret

HexStr2TxtStr ENDP

START:
invoke HexStr2TxtStr, OFFSET HexString, OFFSET TxtBuffer, OFFSET HexBuffer
invoke MessageBox, 0, OFFSET TxtBuffer, 0, 0
invoke ExitProcess,NULL
END START
garrygarry вне форума Ответить с цитированием
Старый 23.07.2017, 23:33   #34
garrygarry
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 36
По умолчанию

ой.. кажется все

cmp ecx,... Всем огромное спасибо!!! И простите тупых (про себя), прошу не обижаться на меня, если тут "раздул" проблему..

Да и проблема смешная, проверять результат через MessageBox, который априори должен заканчиваться 0

Последний раз редактировалось garrygarry; 23.07.2017 в 23:53.
garrygarry вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из ASCII в HEX GrabbeR Общие вопросы Delphi 2 18.03.2017 00:30
Проблема с переводом HEX в BIN ruby25 Visual C++ 0 09.02.2015 23:28
file->HEX HEX->BIN kakawkin Общие вопросы Delphi 1 25.04.2012 01:02
перевести из ASCII в HEX fize Помощь студентам 7 25.12.2009 15:35
Перевод символов в hex(ASCII table) Beliuk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 02.11.2009 08:25