Здравствуйте, уважаемые форумчане!
Делаю индивидку, задание которой звучит так: "Произведение двоично-десятичных чисел с портов Р0 и Р1 микроконтроллера К1816ВЕ51 вывести в порты Р2 и Р3 в двоично-десятичном коде" Пока смог написать следующий код:
Реализовал проверку на ноль - если одно из чисел с портов P0 или P1 равно нулю, то в порты вывода результата P2 и P3 сразу выводятся нули.
Произведение думаю заменить сложением - то есть число с P0 складывается с собой столько раз, сколько введено в порту P1, однако встает проблема: как перевести двоично-дестичный код числа в P1, задающий количество сложений, в десятичный, чтобы реализовать цикл с DJNZ?
И как добиться того, чтобы старшие разряды произведения выводились в порт p2, а младшие - в порт p3? Спасибо всем, кто проявит интерес к вопросу.
Раздел: Школьникам и студентам
Делаю индивидку, задание которой звучит так: "Произведение двоично-десятичных чисел с портов Р0 и Р1 микроконтроллера К1816ВЕ51 вывести в порты Р2 и Р3 в двоично-десятичном коде" Пока смог написать следующий код:
код Ассемблера
MOV R1, P0 ;
MOV A, P1 ;
DEC A ;
MOV R2, A ;
MOV A, R1 ;
M1: ADD A,R1 ;
DA A ;
DJNZ R2, M1;
Реализовал проверку на ноль - если одно из чисел с портов P0 или P1 равно нулю, то в порты вывода результата P2 и P3 сразу выводятся нули.
Произведение думаю заменить сложением - то есть число с P0 складывается с собой столько раз, сколько введено в порту P1, однако встает проблема: как перевести двоично-дестичный код числа в P1, задающий количество сложений, в десятичный, чтобы реализовать цикл с DJNZ?
И как добиться того, чтобы старшие разряды произведения выводились в порт p2, а младшие - в порт p3? Спасибо всем, кто проявит интерес к вопросу.
Раздел: Школьникам и студентам