eXeL@B —› Программирование —› преобразование QWORD в десятеричную строку |
Посл.ответ | Сообщение |
|
Создано: 04 октября 2008 12:03 · Личное сообщение · #1 на входе число содержащиеся в двух регистрах... к примеру EAX = 12345678, EDX = 87654321 , в EDX старший разряд... все число вместе = 8765432112345678 (это хекс), мне нужно это число преобразовать в десятеричное = 9756277977086449272 В Си есть функция __64Int если я не ошибаюсь... Какого вида должна быть строка форматирования для wsprintf чтобы произвести выше указанное преобразование? Поможите плиз.... ----- aLL rIGHTS rEVERSED! |
|
Создано: 04 октября 2008 12:21 · Поправил: coderess · Личное сообщение · #2 |
|
Создано: 04 октября 2008 12:42 · Поправил: flamer · Личное сообщение · #3 coderess DWORD - это круто, но вопрос, как я понимаю именно в QWord DaRKSiDE Если я не ошибаюсь, wsprintf работает с 32-битными параметрами. Но решение под носом -- использование серии функций преобразования 64-битных чисел в строку, а затем уже внедрение этой строки в нужное место. C: Code:
Asm: Code:
|
|
Создано: 04 октября 2008 12:46 · Личное сообщение · #4 |
|
Создано: 04 октября 2008 13:42 · Поправил: ManHunter · Личное сообщение · #5 DaRKSiDE на FASM'е Code:
исходник + exe в аттаче |
|
Создано: 04 октября 2008 13:46 · Личное сообщение · #6 |
|
Создано: 04 октября 2008 13:59 · Личное сообщение · #7 flamer пишет: Asm: Code: 1. include msvcrt.inc 2. includelib msvcrt.lib 3. ... 4. push 10 ; база 5. push offset buffer ; буфер для хранения 6. push eax ; верхнее двойное слово 7. push ebx ; нижнее двойное слово 8. call crt__ui64toa 9. ... Спасибо ОГРОМНОЕ! Все робит Спасибо всем! Вопрос закрыт! ----- aLL rIGHTS rEVERSED! |
eXeL@B —› Программирование —› преобразование QWORD в десятеричную строку |
Эта тема закрыта. Ответы больше не принимаются. |