匯編乘除法
乘法篇:
例如:乘數(shù)R0=10010101,被乘數(shù)R2=11000101,中間變量R1,乘積R1R0。步驟如下
1、清空中間變量R1;
2、乘數(shù)的第0位是1,那被乘數(shù)R2加上R1結(jié)果給到R1,將R0、R1右移一位
3、乘數(shù)的第1位是0,只將R0、R1右移一位
4、乘數(shù)的第2位是1,那被乘數(shù)R2加上R1結(jié)果給到R1,將R0、R1右移一位
5、乘數(shù)的第3位是0,只將R0、R1右移一位
6、乘數(shù)的第4位是1,那被乘數(shù)R2加上R1結(jié)果給到R1,將R0、R1右移一位
7、乘數(shù)的第5位是0,只將R0、R1右移一位
8、乘數(shù)的第6位是0,只將R0、R1右移一位
9、乘數(shù)的第7位是1,那被乘數(shù)R2加上R1結(jié)果給到R1,將R0、R1右移一位
10、這時(shí)候R1R0里的值就是最后的乘積,至此算法完成
除法篇:
例如:8位除法運(yùn)算:被除數(shù)R2,除數(shù)R3,商R0,余數(shù)R1。步驟如下
1、清空商R0,余數(shù)R1
2、將R2左移一位,給到R1;運(yùn)算次數(shù)加一;
3、兩數(shù)相減,判斷R1是否大于或等于R3;
4、當(dāng)R1小于R3時(shí),繼續(xù)移位;
5、當(dāng)R1大于或等于R3時(shí),R0左移,進(jìn)位1,將結(jié)果存至R1;
6、循環(huán)操作,直到運(yùn)算次數(shù)等于被除數(shù)的位數(shù)(8),輸出余數(shù)與商的值。
芯片型號(hào) | ROM (bytes) | RAM (bytes) | IO | ADC (12bit) | HIRC | Timer | 封裝 |
MC32F7062 | 4K | 256 | 18 | 14路外部 2路內(nèi)部 | 32M | 3*8bit 1*16bit | SOP20/16/14/8 DIP20/14/8 TSSOP20 |