5.3 硬件乘法器
第5章 MSP430单片机片内外围 章 单片机片内外围 模块
5.4 硬件乘法器
5.4.1 硬件乘法器的结构
硬件乘法器的特性:
能够实现16×16位、8×16位、16×8位或8×8 位运算。 支持无符号乘法(MPY)。 有符号乘法(MPYS)。 无符号乘加(MAC)。 有符号乘加(MACS)。
5.4.2 硬件乘法器寄存器
5.4.3 硬件乘法器的操作
硬件乘法寄存器的乘数来源于两个操作数寄存器OP1和OP2,OP1可来源于4 个寄存器MPY、MPYS、MAC及MACS,它们能确定乘法的类型。 乘法运算执行之后,一般需要4个周期数,结果暂存在紧接着的32位乘积寄存 器中。如果执行乘加运算,则将用到累加器ACC, 结果保存到硬件乘法器的3个16位寄存器中,即结果高字寄存器(RESHI)、 结果低字寄存器(RESLO)及结果扩张寄存器(SUMEXT)。
5.4.4 硬件乘法器的举例
例1:8×8无符号乘法运算,乘积放在R8和R9中。 #include <msp430x44x.h> MOV #0,&RESLO ;清结果寄存器 MOV #0,&RESHI; MOV . B #012h,&0130h ; 第一操作数 MOV . B #034h,&0138h ; 第一操作数 NOP NOP MOV &RESLO,R8;读结果,将结果低字节存入R8 MOV &RESHI,R9;读结果,将结果高字节存入R9 RET
1. 硬件乘法器步骤 第一操作数OP1,来源于寄存器MPY, MPYS, MAC或MACS之一。 写第二操作数OP2,写入完毕,乘法运算立即开始。 读结果,乘法结果存放在RESHI、RESLO及SUMEXT。 2. 硬件乘法器操作时的注意事项 第二个操作数写入完毕,乘法运算就开始。一般在取出结果之前插入 1~2条指令,以保证运算时间的需要。 在一个器件中只有一个硬件乘法器,如果遇到多处使用的情况,必须 在每一次使用完成后再进行下一次使用。 结果扩展寄存器(SUMEXT)内容,与运算类型及结果都有关系。 无论进行何种运算,只要操作数类型为8×8型,操作过程就要使用寄 存器的绝对地址,而不能使用符号形式。但是16×16位运算就可以使 用寄存器符号形式。 在最初两步操作,即传送第一及第二操作数给乘法器之间,不允许接 受中断请求。