|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.11.2009, 02:00 | #1 |
Регистрация: 12.11.2009
Сообщений: 3
|
Вычитание и LOOP
Возникла проблема с вычитанием многоразрядных цифр. По идее программа представленная ниже должна брать каждый разряд и вычитать одно число от другого. В случае если происходит овычитание от меньшого, болешее число, соответственно происходит какбы заем, и в флаг CF заноситься еденица. Все так происходит, пока не прохождение прохождение цикла и "loop - а10" почему то обнуляет этот флаг, соответственно зайом не происходит и следующий разряд остается на еденицу больше, нежели он должен быть. Когда за таким принципом произвожу сложение(с помощью команд adc и aaa) то "loop" флаг не обнуляет, перенос разряда происходит корректно и ответ правильный.
Почему "loop" обнуляет флаг "CF" при вычитании и не трогает при сложении? Код:
|
14.11.2009, 17:20 | #2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
Код:
2 чтобы учитывать заем, нужно вычитать при помощи sbb, а не sub 3 после коррекции нужно приводить BCD в ASCII |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вычитание с переводом в двоичную систему | strateg66 | Помощь студентам | 5 | 07.10.2009 17:45 |
Вычитание | avnsanto | Microsoft Office Excel | 0 | 24.07.2009 02:33 |
Assignment to FOR-Loop variable | zotox | Помощь студентам | 4 | 24.03.2009 11:32 |
Вычитание чисел по основанию 4 и 16. | Stager | Общие вопросы C/C++ | 1 | 21.01.2009 00:13 |
вычитание даты | zetrix | Microsoft Office Excel | 3 | 10.11.2006 06:30 |