Страница 1 из 1

Умножение двух чисел

Добавлено: 06 май 2009, 13:40
borN_free
Микроконтроллер семейства МC68НС11

Micro-IDE
ОС WinXP

6.Напишите программу умножения двух двоично-десятичных 8-разрядных чисел.

Вот что есть у меня:

org $8000
ldaa #$10
ldab #$68
mul ; $10 * $68 = $0680
adca #7; вот тут если перемножать двуразрядные числа, то
; все нормально, а если большие - то выходят за пределы.
; как добиться нужного результата?

Re: Умножение двух чисел

Добавлено: 13 май 2009, 01:32
borN_free
люди, напиши как записать в память двоично-десятичное число, надо алгоритм придумать?

Re: Умножение двух чисел

Добавлено: 13 май 2009, 09:13
Naeel Maqsudov
Алгоритм умножения такой же как при умножении "в столбик" :)

А BCD числа так и пишутся;

Код: Выделить всё

     ORG $80000
     JMP Start
X:   DB  $12,$34,$56,$78 ; =12345678
Start:

Re: Умножение двух чисел

Добавлено: 14 май 2009, 12:49
borN_free
код не совсем понял, как допустим десятичное число 33 (тоесть двоично десятичное "0011 0011") занести в память?

Re: Умножение двух чисел

Добавлено: 28 май 2010, 15:43
bang
Насколько я понял входные данные вводятся в bcd формате.
Получается совсем просто:
org $9000
ldaa #%00100011 ;$23
ldab #%00010010 ;$12
mul ;$76=01110110

P.S. 8-разрядные bcd числа не могут быть больше 99 т.к существуют запрещенные битовые комбинации.

Re: Умножение двух чисел

Добавлено: 22 ноя 2010, 00:43
N1ck
хм, а напишите кто нить код программы, который бы переводил десятичные числа в bcd(тобишь в двоично-десятичные), ну и собственно их перемножение