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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2012, 21:05   #11
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Я не понял вот этого:
Код:
push    dx      ; мы получаем цифры в обратном порядке
С одной стороны, мы запихиваем в стек 2 байта, а не один символ.
С другой - в стек мы помещаем не символ цифры, а число, которое меньше символа цифры на 30h.
И я не понял вообще, где хранятся буфера для большого числа, строки, и какое все это имеет отношение к стеку.
s-andriano вне форума Ответить с цитированием
Старый 17.06.2012, 21:11   #12
sss-777
Пользователь
 
Регистрация: 13.05.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Я не понял вот этого:
Код:
push    dx      ; мы получаем цифры в обратном порядке
С одной стороны, мы запихиваем в стек 2 байта, а не один символ.
С другой - в стек мы помещаем не символ цифры, а число, которое меньше символа цифры на 30h.
И я не понял вообще, где хранятся буфера для большого числа, строки, и какое все это имеет отношение к стеку.
Мне пришлось удалить 3000 символов, чтобы влез код. Вот переправлю вам код в текстовом формате, не запакованный, в чистом виде.
Вложения
Тип файла: txt code.txt (7.7 Кб, 129 просмотров)
sss-777 вне форума Ответить с цитированием
Старый 17.06.2012, 21:38   #13
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Я так понимаю, что большое число записывается в esi?
А где инициализируются эти регистры?
Код:
    stosw           ; сохраняем очередную цифру в буфере для
большого числа
s-andriano вне форума Ответить с цитированием
Старый 17.06.2012, 22:01   #14
sss-777
Пользователь
 
Регистрация: 13.05.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Я так понимаю, что большое число записывается в esi?
А где инициализируются эти регистры?
Код:
    stosw           ; сохраняем очередную цифру в буфере для
большого числа
Я не знаю каким чудом она работает) хотелось бы просто чтоб выводила еще нормально итог)
sss-777 вне форума Ответить с цитированием
Старый 18.06.2012, 07:58   #15
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Я, честно говоря, не знаю, как искать ошибки в программе, кроме как разбираться, как она работает.
Если бы у меня был установлен Ассемблер, я бы смог ее отладить обычным способом. В данный момент могу только глазами просматривать код. Поэтому когда чего-то не понимаю - спрашиваю.

Вам могу порекомендовать:
1. Сделать вывод в файл промежуточных результатов и, используя hex-вьюер и обычный калькулятор, проверить результат, локализовав таким образом место ошибки.
2. Переписать процедуру преобразования числа в строку. В частности, мне кажется излишним реализовать 2 разных блока - один для старшей цифры, другой - для остальных. Я бы сделал один блок, формирующий число с ведущими нулями, а потом избавился от ведущих нулей, сдвигая адрес начала строки.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисления факториала больших чисел (с++) maksat-15 Помощь студентам 7 09.06.2012 08:39
вывод полинома в программе (была каноническая стала линейная) Студент13 Паскаль, Turbo Pascal, PascalABC.NET 0 29.04.2011 22:26
Вывод капчи в программе! DKENT Работа с сетью в Delphi 8 21.10.2010 09:13
Вывод баннеров в программе termit56 Помощь студентам 6 11.03.2010 14:29
Ассемблер - вывод факториала Voortex Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 07.12.2008 12:29