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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2017, 10:44   #11
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

где менял? здесь?
7465202073742d746573742d746573742d7
Цитата:
Сообщение от garrygarry Посмотреть сообщение
насколько понимаю, конец строки 23,10
нет, конец строки вот это 6576576",0
нужно не копипастить непонятные фрагменты, а писать самостоятельно и о совете по поводу
Цитата:
Сообщение от p51x Посмотреть сообщение
Найдите на просторах инета книжку по асму или словарь по английском
не забывать

Последний раз редактировалось Mikl___; 21.07.2017 в 10:47.
Mikl___ вне форума Ответить с цитированием
Старый 21.07.2017, 10:56   #12
garrygarry
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Mikl___ Посмотреть сообщение
где менял? здесь?
7465202073742d746573742d746573742d7

нет, конец строки вот это 6576576",0
нужно не копипастить непонятные фрагменты, а писать самостоятельно и о совете по поводу

не забывать
Наверное, Вы меня не услышали. Нет, скорее я некорректно спросил. Простите. Мне 2020 вставлять не нужно в декодируемые текст.
Это буфер. То есть, переменная input db 30 dup (?),0

Потом, я читаю строку из файла в данную переменную (строка в hex)

invoke ReadFile, h, ADDR input, 30, addr skokachitat , NULL

А потом хотелось бы декодировать эту строку. Так вот, когда попадаются нули в строчках (нули в hex)- декодированию game over
garrygarry вне форума Ответить с цитированием
Старый 21.07.2017, 11:06   #13
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

для начала упрости работу -- разбей ее на части, добейся чтобы эти части работали, а потом связывай эти части
Считай что ты УЖЕ считал строку из файла в буфер, теперь добейся чтобы строка выводилась на экран. Чтобы декодирование не ломалось на нулях сделай вывод по-счетчику, поместил в счетчик число (25), вывел символ на экран, отнял единичку от счетчика, проверил обнулился ли счетчик, если нет, то в начало цикла, если счетчик=0 завершаешь вывод на экран, Как-то так
Mikl___ вне форума Ответить с цитированием
Старый 23.07.2017, 10:36   #14
garrygarry
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Mikl___ Посмотреть сообщение
для начала упрости работу -- разбей ее на части, добейся чтобы эти части работали, а потом связывай эти части
Считай что ты УЖЕ считал строку из файла в буфер, теперь добейся чтобы строка выводилась на экран. Чтобы декодирование не ломалось на нулях сделай вывод по-счетчику, поместил в счетчик число (25), вывел символ на экран, отнял единичку от счетчика, проверил обнулился ли счетчик, если нет, то в начало цикла, если счетчик=0 завершаешь вывод на экран, Как-то так
Так и не получилось у меня сделать.. Выкрутился запуском hex2bin
Если поможете чайнику - буду очень признателен
garrygarry вне форума Ответить с цитированием
Старый 23.07.2017, 12:26   #15
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

garrygarry,
не люблю я загадки отгадывать, а также терпеть не могу, когда меня пытаются чужую работу заставить сделать.
Цитата:
Сообщение от garrygarry Посмотреть сообщение
Так и не получилось у меня сделать
Что ТАК? и что НЕ ПОЛУЧИЛОСЬ? Если попыток никаких на форум не выкладывалось... Не можешь сам -- возьми функцию wsprttf/sprintf/printf и формат "%08X" и выводи по восемь символов на экран
Mikl___ вне форума Ответить с цитированием
Старый 23.07.2017, 12:39   #16
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

..а я так и не понял, откуда появились и что представляют из-себя нули во внешнем\бинарном файле. Это типа пробел чтоли?

garrygarry, если ты имеешь дело со строками, то нуль не может ничего означать, кроме как "конец строки". Поэтому его и ввели как нуль-терминал для строк. Другое дело, если ты работаешь с бинарным файлом, где нуль может означать что-угодно.

Ты уж определись - строковые у тебя операции, или двоичные..
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 23.07.2017, 12:49   #17
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Салям, Тимур,
ТС открывает бинарный файл и хочет вывести его содержимое на экран в шестнадцатеричном виде. Вместо того чтобы разобраться, пытается использовать какую-то программу скопипащенную с инета, но предназначенную совсем для другого. Как только эта программа встречает нулевой символ -- всё, приехали! Программа дальше не считает...
Mikl___ вне форума Ответить с цитированием
Старый 23.07.2017, 12:57   #18
garrygarry
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 36
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
..а я так и не понял, откуда появились и что представляют из-себя нули во внешнем\бинарном файле. Это типа пробел чтоли?

garrygarry, если ты имеешь дело со строками, то нуль не может ничего означать, кроме как "конец строки". Поэтому его и ввели как нуль-терминал для строк. Другое дело, если ты работаешь с бинарным файлом, где нуль может означать что-угодно.

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

Цитата:
hextoa proc uses esi edi stringtr byte
mov edi,string
mov esi,edi
.repeat
mov ax,[esi]
inc esi
.continue .if al == ' '
inc esi
mov dl,ah
.break .if !al
sub ax,'00'
.if al > 9
sub al,7
.endif
shl al,4
.if ah > 9
sub ah,7
.endif
or ah,al
mov [edi],ah
inc edi
.until !dl
sub al,al
mov [edi],al
mov eax,string
ret
hextoa endp
Читаю в переменную в виде hex данные , например,

d09fd0bed0bcd0bed0b3d0b8d182d0b520d 0bfd0bbd0b7

все получается отлично. Как данные в переменную где есть конец строки, так декодирование обрывается на двух нулях 00. То есть, если в строке (в виде hex) будут присутствовать два нуля,например,

d0009fd0bed0bcd0bed0b3d0b8d182d0b52 0d0bfd0bbd0b7

то декодирование не проходит.

Что только не пробовал.. чем ее заменить. И заменил утилитой hex2bin через ShellExecute

Последний раз редактировалось garrygarry; 23.07.2017 в 13:00.
garrygarry вне форума Ответить с цитированием
Старый 23.07.2017, 13:14   #19
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от garrygarry Посмотреть сообщение
Что только не пробовал.. чем ее заменить
garrygarry,
читаешь внимательно? Замени на вызов функции wsprntf/sprintf/printf и формат "%08X" и выводи по четыре символа из файла

Последний раз редактировалось Mikl___; 23.07.2017 в 13:17.
Mikl___ вне форума Ответить с цитированием
Старый 23.07.2017, 13:15   #20
garrygarry
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Mikl___ Посмотреть сообщение
Салям, Тимур,
ТС открывает бинарный файл и хочет вывести его содержимое на экран в шестнадцатеричном виде. Вместо того чтобы разобраться, пытается использовать какую-то программу скопипащенную с инета, но предназначенную совсем для другого. Как только эта программа встречает нулевой символ -- всё, приехали! Программа дальше не считает...
Цитата:
Сообщение от Mikl___ Посмотреть сообщение
Салям, Тимур,
ТС открывает бинарный файл и хочет вывести его содержимое на экран в шестнадцатеричном виде. Вместо того чтобы разобраться, пытается использовать какую-то программу скопипащенную с инета, но предназначенную совсем для другого. Как только эта программа встречает нулевой символ -- всё, приехали! Программа дальше не считает...
Mikl, спасибо. Только наоборот hex -> bin
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