![]() |
|
![]() ![]() ![]() |
|
Warmbabe |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 23.6.2006 Репутация: нет Всего: нет |
Помогите, пожалуйста!
У меня есть программа-калькулятор двоичных чисел, рассчитанная на 32-разрядные числа. Ввод и вывод чисел осуществляется в паскале. Строка преобразуется в число типа longint, после чего пара введенных чисел передается в ассемблерную процедуру. При сложении\вычитании, если размер числа не превышает 30 бит, все работает отлично. При длине одного из чисел 31 бит паскаль выдает ошибку stack overflow и выбрасывает из программы. При длине в 32 бита - выводится неправильный результат - переполнение. Умножение происходит без ошибок только если длина каждого из чисел не больше 14. Почему происходит переполнение? У лонгинта длина 32 разряда...... Как можно убрать переполнение стека? |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: 11 Всего: 18 |
Покажи код...
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |