汇编乘除法
乘法篇:
例如:乘数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 |