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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2008, 08:19   #1
ManU
Пользователь Подтвердите свой е-майл
 
Аватар для ManU
 
Регистрация: 30.04.2008
Сообщений: 78
По умолчанию Сложениние с переполнеием [assembler]

Как сложить 2 восьмибайтовых числа?
ManU вне форума Ответить с цитированием
Старый 25.06.2008, 13:47   #2
mikityak
Заблокирован
 
Регистрация: 07.06.2008
Сообщений: 15
По умолчанию

Ассемблер для начинающих
mikityak вне форума Ответить с цитированием
Старый 26.06.2008, 03:34   #3
Sharaevsky_Vitaly
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 26
По умолчанию

Очень просто... :

mov AX, первое восьмибайтовое число
add AX, второе восьмибайтовое число

результат сохранится в AX...конечно вряд ли при сложении двух восьми байтовых чисел возникнет переполнение (так как AX 16-ти битный, а 255+255=510<65535), но если все же сомневаешься, то проверь флаг С, а еще лучше использую команду перехода "jc метка", которая позволит сделать переход по метке, если флаг С установлен
Sharaevsky_Vitaly вне форума Ответить с цитированием
Старый 26.06.2008, 19:17   #4
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Sharaevsky_Vitaly, ??? восьмибайтовое число в AX?!
ManU, код надо 16-битный или 32-битный?
Somebody вне форума Ответить с цитированием
Старый 26.06.2008, 20:24   #5
Sharaevsky_Vitaly
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 26
По умолчанию

Somebody, согласен, что для восьмибайтового числа с головой достаточно а одной половины AX, просто мне показалось, что так будет проще - не надо будет возиться с переполнением
Sharaevsky_Vitaly вне форума Ответить с цитированием
Старый 26.06.2008, 22:55   #6
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от Sharaevsky_Vitaly Посмотреть сообщение
для восьмибайтового числа с головой достаточно а одной половины AX
Прочитай ещё раз и повнимательнее.
P.S. Я тоже часто невнимательно так читаю.
Somebody вне форума Ответить с цитированием
Старый 29.06.2008, 23:18   #7
Sharaevsky_Vitaly
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 26
По умолчанию ООО!!!!

Во туплю ...восьмибайтовых!!...а я про биты думаю
Sharaevsky_Vitaly вне форума Ответить с цитированием
Старый 01.07.2008, 08:35   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если не ошибаюсь для таких чисел нужно FPU применять там fadd есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2008, 21:21   #9
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Int64 - 8 байт
Alter вне форума Ответить с цитированием
Старый 03.07.2008, 17:21   #10
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
Стрелка

К [a] прибавить [b]
  • Сложние с переполнением (примерно так Delphi компилирует сложение для Int64)
    Код:
    mov eax, [b]
    mov edx, [b+4]
    add [a], eax
    adc [a+4], edx
  • Сложение через FPU (примерно так Delphi компилирует сложение для Comp)
    Код:
    fild [a]
    fild [b]
    faddp
    fistp [a]
Somebody вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler oleh Помощь студентам 2 24.04.2008 19:45
Assembler Almost_Famous Помощь студентам 4 29.02.2008 21:54