Консультация № 77015
27.02.2007, 18:21
0.00 руб.
0 1 1
Уважаемые эксперты! Скажите ,пожалуйста, зачем в программе нужна дериктива - > adc carry,0? Ведь вроде бы на переполнения проверяет jnc enp (непонятно). Зачем надо проверять результат 2 раза ?

По идеи на входе :summand_1,summand_2 - слагаемые,а на выходе: sum_b или sum_w - значение суммы с учётом переполнением . По смыслу программа учитывает возможное переполнение результата.
Программа производит сложение чисел размером 1 байт без учёта знака.

Приложение:
....datasummand_1 db ?summand_2 db ?sum_w label wordsum_b db 0carry db 0.codeadd_unsign procmov al,summand_2add al,summand_1jnc endp ; проверка на переполнениеadc carry,0endp:retadd_unsign endp

Обсуждение

давно
Старший Модератор
31795
6196
27.02.2007, 18:43
общий
это ответ
Здравствуйте, Loriendil!
строку:
jnc endp
можно убрать, команда:
adc carry,0
запишет значение CF в carry.

endp-это зарезервированое слово и не подходит для метки.
Удачи!

Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа