Помогите пожалуйста перевести число в ASCII для последующего вывода MessageBox'ом. Число находится в FPU ST(0) в виде 21713717, его и надо перевести в символы ASCII. Еще оно дублируется в стеке в HEX (014B5335). пытаюсь использовать следующий код Код (Text): ;******************************************************* ;* ПЕРЕВОД ЧИСЛА ИЗ ШЕСТНАДЦАТЕРИЧНОГО КОДА В ДВОИЧНЫЙ * ;* DS:SI - число в коде ASCII. * ;* Результат возвращается в EAX. * ;******************************************************* PROC HexToBin32 near push EBX push CX push SI cld xor EBX,EBX ;обнуляем накопитель xor CX,CX ;обнуляем счетчик цифр @@h0: lodsb ; Проверка на ноль (признак конца строки) and AL,AL jz @@h4 ; Проверка на диапазон '0'-'9' cmp AL,'0' jb @@Error cmp AL,'9' ja @@h1 sub AL,'0' jmp short @@h3 @@h1: ; Проверка на диапазон 'A'-'F' cmp AL,'A' jb @@Error cmp AL,'F' ja @@h2 sub AL,'A'-10 jmp short @@h3 @@h2: ; Проверка на диапазон 'a'-'f' cmp AL,'a' jb @@Error cmp AL,'f' ja @@Error sub AL,'a'-10 @@h3: ; Дописать к результату ; очередные 4 разряда справа shl EBX,4 or BL,AL inc CX cmp CX,8 jbe @@h0 ; Если в числе больше 8 цифр - ошибка jmp short @@Error @@h4: ; Успешное завершение - результат в EAX mov EAX,EBX jmp short @@End @@Error:; Ошибка - обнулить результат xor EAX,EAX @@End: pop SI pop CX pop EBX ret возникают вопросы cmp AL,'A' сравнение происходит не с A , а с 41 (так и должно быть?) ну и после этого сравнения происходит jb на ошибку
поиск то рулит, нашел несколько вариантов, но не хватает знаний для реализации. скажите, с помощью примера который я привел вообще возможно решить эту задачу, или я не в том направлении смотрю?