Програма за деление на еднобайтови числа
Да се разделят две числа означава, да се установи, колко пъти делителя се нанася в делимото. Това може да стане най-просто, като се изважда делителят от делимото циклично и се броят итерациите до получаване на резултат по-малък от 0. На тази основа е съставена програмата от следващия пример. Този начин е подходящ за обработване на малки числа. За обработване на многобайтови числа са разработени по-сложни алгоритми.
.include “m16def.inc”
LDI ZL,0×60
CLR ZH
LD R5,Z ;Зарежда делимото
LDD R6,Z+1 ;Зарежда делителя
CLR R0 ;Нулира броячът на итерациите
L1: INC R0 ;Отброява една итерация
SUB R5,R6 ;Извършва изваждането
BRSH L1 ;Преход, ако в R5 е по-голямо или равно
ADD R5,R6 ;Възстановява остатъка
DEC R0 ;Връща брояча с една стъпка
STD Z+2,R0 ;Записва резултата
STD Z+3,R5 ;Записва остатъка
Операндите са в клетките 0х0060 и 0х0061. Съдържанието на тези две клетки се зареждат в оперативните регистри R5 и R6. Използвано е косвено адресиране с отместване. Броячът на итерациите е формиран в регистър R0. Инструкцията CLR R0 го нулира в началото на цикъла. След това INC R0 го увеличава на всяка итерация, SUB R5,R6 извършва изваждането, а BRSH L1 следи, дали числото в R5 е все още по-голямо или равно на това в R6. Когато това условие не се изпълни, цикълът се прекратява. Тогава нещата се връщат с една стъпка назад, за да се възстанови последният положителен остатък. Резултатът се записва в 0х0062, а остатъкът се запазва в 0х0063. Ако е необходимо по-голяма точност, делението може да продължи на базата на този остатък.
Сходни статии:
- Програма за умножение на еднобайтови числа без алгебричен знак Програма за умножение на еднобайтови числа без алгебричен знак Алгоритъм на умножението Нека е дадено множимото 1101 и множителя1001. Алгоритъмът за умножение на десетични и двоични числа е един и...
- Програма за събиране не еднобайтови BCD числа В тази програма не би трябвало да има нещо особено. Двата операнда се задават в BCD код в клетките 0х0060 0х0061. След това се извършва сумирането им по познатия начин....
- Програма за преобразуване на еднобайтови двоични числа в BCD код Максималната стойност на еднобайтовото число е 255. За да бъде преобразувано в двоично-десетично, може да се постъпи по следния начин. От зададената стойност да се изважда най-напред100, докато се получи...
- Програма за събиране на четирибайтови числа с алгебричен знак Програма за събиране на четирибайтови числа с алгебричен знак В следващия пример подпрограмата за обработване на знака е извикана три пъти. При първия път е зададен адресът на първия операнд...
- Програма за събиране на четирибайтови числа Програма за събиране на четирибайтови числа Операндите трябва да се заредят най-напред в оперативната памет. За първия операнд са отделени клетките 0х60, 0х61, 0х62 и 0х63; като първата от тях...