Где ошибку сделал не пойму :( asm
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено whale 20 июня 2003 г. 00:50

есть числ из четырех байт, два байта - целая часть, два - дробная.
а1 а0 - целая
а5 а4 - дробная
нужно умножить на два :)

movl a6, 10000b число 10 000
movl a7, 100111b

rlc a4 сдвиг дробной части
rlc a5
mov a2, a4 сохранение дробной части
mov a3, a5

sub a4, a6 вычитание из дробной 10 000
sbc a5
sub a5, a7
jc @2 если < 10 000
если > 10 000
sst 1 C==1
jmp @1
@2:
mov a4, a2 восстановление дробной части
mov a5, a3
cst 1 С==0
@1:
rlc a0 сдвиг целой части
rlc a1


при выводе какие-то скачки например 487 - 511
сто раз проверил не пойму что такое :(


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru