· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Преобразование BIN-->DEC

Посл.отвђт Сообщенiе


Дата: Май 4, 2004 15:24:44 · Поправил: Paranoid333

Нужно преобразовать бинарную строку типа
xBIN   db   08h,0FBh,08Fh,0D9h,082h,08Bh 

в ASCII строку
xDEC_STR   db  "9876543210123",0 
;8FB8FD9828Bh=9876543210123d
наподобии того, как это делает процедура DWTOA, толька для чисел большей размерности(учетверверенное слово и больше).
В часности, я не знаю как, например, поделить число, не вмещаюшееся в регистр(общ. назн. или сопроцессора) на 10.


Дата: Май 4, 2004 15:30:55

создать asc2 db '0123456789ABCDEF'
xor ah,ah
mov al,нужный символ из массива
xlat
и сохраняем ah
ты это имел ввиду?


Дата: Май 4, 2004 15:41:35

Paranoid333
num dd low, ... , high
num_len = $-num

  mov ecx,num_len
  mov ebx,10
  xor edx,edx
.l:
  mov eax,[num+ecx-4]
  div ebx
  mov [num+ecx-4],eax
  sub ecx,4
jnz .l

edx - остаток, а на место num запишется частное


Дата: Май 4, 2004 18:00:57 · Поправил: Paranoid333

to EvilsInterrupt
Нет, не это. Точнее xlat тут не подходит. Перевод нужно сделать для большого числа, а xlat-ом можно перевести тока 1 цифру.
to Black_mirror
По-моему так делить нельзя. Делить надо все число зразу или делать заем из ст. разрядов.

ту Всем
Жду еше предложений(особенно примеров).
wsprintf не подходит. У нее тоже ограничение по размерности параметра.


Дата: Май 4, 2004 20:12:54

Paranoid333

Вспомни как выполняется деление в столбик и сравни с тем что я написал выше 8)


Дата: Май 4, 2004 23:09:42

Black_mirror
Идея верно, я ее себе применил но токо чуть переделал. Сейчас делаю из hex->dec хочу минимальный код, но все какой то громоздкий!

По-моему так делить нельзя. Делить надо все число зразу или делать заем из ст. разрядов

Можно примеров по делению хватает, взять хотя бы инфу по crc, токо эту арифметику не применяй!


Дата: Май 18, 2004 02:10:43 · Поправил: zzzyab

Его можно перекодировать побайтно:сначало заролить а потом перенести в другое место те. байты бутут наоборот. Мой пример делает для byte,word,dword думаю мона и на больше переделать. Полный текст в теме "вопрос компу" (не работает у меня вставка ссылок)


Дата: Май 18, 2004 03:07:56

это подойдет ?

_90816089__big2ascii.asm


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.095