Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Калькулятор


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

Автор: Chingachguk 24.6.2006, 15:02
Покажи код... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)