Страница 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(тобишь в двоично-десятичные), ну и собственно их перемножение