Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Asm для начинающих > Калькулятор |
Автор: Warmbabe 23.6.2006, 23:54 |
Помогите, пожалуйста! У меня есть программа-калькулятор двоичных чисел, рассчитанная на 32-разрядные числа. Ввод и вывод чисел осуществляется в паскале. Строка преобразуется в число типа longint, после чего пара введенных чисел передается в ассемблерную процедуру. При сложении\вычитании, если размер числа не превышает 30 бит, все работает отлично. При длине одного из чисел 31 бит паскаль выдает ошибку stack overflow и выбрасывает из программы. При длине в 32 бита - выводится неправильный результат - переполнение. Умножение происходит без ошибок только если длина каждого из чисел не больше 14. Почему происходит переполнение? У лонгинта длина 32 разряда...... Как можно убрать переполнение стека? |
Автор: Chingachguk 24.6.2006, 15:02 |
Покажи код... |