| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > вывод двойного слова в десятичном виде |
| Автор: videns 11.5.2007, 15:10 |
| есть двойное слово, необходимо вывести его в десятичной форме. так как надо все делать в тасм, стандартый алгоритм делиния на 10 не получается, регистра еах нет (( есть ли какой-либо алгоритм общий или готовый код? буду очень признателен. |
| Автор: Alexander77 11.5.2007, 17:08 | ||
Есть:
И подобная тема: http://forum.progteam.ru/lofiversion/index.php/t396.html |
| Автор: videns 12.5.2007, 07:32 |
| регистров eax,ebx,ecx,edx нет, необходимо использовать только компилятор tasm. в этом-то и состоит основная проблема.. |
| Автор: anwe 12.5.2007, 10:33 | ||
| videns, во-первых, можно поставить .386. Во-вторых, есть такая команда aam, посмотри ее. Ее действие сводится к делению регистра al на 0Ah (10), то есть основание системы счисления. Частное помещается в ah, остаток - в al. К примеру
Alexander77, просили в 10-й системе, а твой код выводит в 16-й. И где метка @B? |
| Автор: dumb 12.5.2007, 14:40 |
возможно имеется ввиду "неправильность" использования 32-битных регистров, чтоб научились работать с парой dx:ax. это одно из зарезервированных имен для ближайшей метки с именем '@@'. @B - back(назад по коду), @F - forward(вперед по коду). ps. экий я гаццкий критик. решений не даю, только критикую... |
| Автор: videns 12.5.2007, 15:27 |
| если работать с парой регистров DX:AX, то после деления на 10 частное может не поместиться в регистр. поэтому нужен какой-либо другой алгоритм для преобразования. |
| Автор: JAPH 12.5.2007, 17:35 | ||
А в чём проблема? Делите сначала старшую часть, затем младшую.
|
| Автор: Mikl__ 25.5.2007, 08:24 | ||
Скажешь своему преподу что сопроцессоры были уже в 8086, перевожу 64-битное в десятеричное число
|