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