(1)ALU输入数据的40位扩展 当16位数据存储器操作数通过数据总线DB或CB输 入ALU时,40位的ALU输入将采用两种方式形成: ①若输入的16位操作数装在ALU的0~15位时,则 ●当SXM=0时,高24位(39-16位)用0填充; 当SXM=1时,高24位(3916位)扩展为符号位。 ②若输入的16位操作数装在ALU的16~31位时,则 ●当SXM=0时,3932位和150位用0填充; ●当SXM=1时,3932位扩展为符号位,150位置0。 (2)ALU的输出 ALU的输出为40位运算结果,通常被送至累加器A惑B
(1) ALU输入数据的40位扩展 当16位数据存储器操作数通过数据总线DB或CB输 入ALU时,40位的ALU输入将采用两种方式形成: ① 若输入的16位操作数装在ALU的0~15位时,则 •当SXM=0时,高24位 ( 39~16位 ) 用0填充; •当SXM=1时,高24位 ( 39~16位 ) 扩展为符号位。 ②若输入的16位操作数装在ALU的16~31位时,则 •当SXM=0时,39~32位和15~0位用0填充; •当SXM=1时,39~32位扩展为符号位,15~0位置0。 (2) ALU的输出 ALU的输出为40位运算结果,通常被送至累加器A或26 B
第2章TMS320c54X的硬件结构及原理 (3)与算术逻辑运算单元ALU有关的标志位、控制位 反映ALU当前运算结果状态的有4个标志位(STQ内) >进位位c—ST0(D11) 测试位Tc—ST0(D12) >溢出标志位 OVA-ST0(D10) >溢出标志位OvB—ST0(D9) 控制ALU工作的有3个控制位(ST1内): 溢出方式位 OVM-ST1(D9) 双16位双精度方式位c16ST1(D7) >符号扩展位 SXMAST1(D8) 27
第2章 TMS320C54x的硬件结构及原理 (3) 与算术逻辑运算单元ALU有关的标志位、控制位 反映ALU当前运算结果状态的有4个标志位(ST0内): 控制ALU工作的有3个控制位(ST1内) : ➢溢出方式位OVM——ST1(D9) ➢双16位/双精度方式位C16——ST1(D7) ➢符号扩展位SXM——ST1(D8) ➢进位位C——ST0(D11) ➢测试位TC——ST0(D12) ➢溢出标志位OVA——ST0(D10) ➢溢出标志位OVB ——ST0(D9) 27
()进位位c功能: ALU有一个与运算结果有关的进位位C,位于STQ的 11位。进位位C受大多数ALU操作指令的影响,包括算 术操作、循环操作和移位操作。 ①用来指明是否有进位发生; ②用来支持扩展精度的算术运算; ③可作为分支、调用、返回和条件操作的执行条件。 注意:①进位位C不受装载累加器操作、逻辑操作、 非算术运算和控制指令的影响; ②可通过指令RSBX和SSBX对其置位和复位。 (H)Tc测试控制标志,位于STQ的12位;m
(i)进位位C功能: ALU有一个与运算结果有关的进位位C,位于ST0的 11位。进位位C受大多数ALU操作指令的影响,包括算 术操作、循环操作和移位操作。 ① 用来指明是否有进位发生; ② 用来支持扩展精度的算术运算; ③ 可作为分支、调用、返回和条件操作的执行条件。 注意:① 进位位C不受装载累加器操作、逻辑操作、 非算术运算和控制指令的影响; ② 可通过指令RSBX和SSBX对其置位和复位。 (ii ) TC测试/控制标志,位于ST0的12位; 28
(If)溢出标志位(oVA或OVB位于STQ的9,10位。 在以累加器A(B)为目的寄存器时算术逻辑单元的 32位数的运算结果发生溢出,或者乘法加法单元的 操作发生溢出,相应的溢出标志位OVA(或OvB) 置1,直到发生复位、或者是执行以Ao(Bov) 和ANOV(BNOv)为条件的Bc[D]、或Rc[D]、 cc[D]等指令,OVA(OvB)保持置1状态。RSBX 指令也可以清除OVA标志
•在以累加器A(B)为目的寄存器时算术逻辑单元的 32位数的运算结果发生溢出,或者乘法/加法单元的 操作发生溢出,相应的溢出标志位OVA (或OVB) 置1,直到发生复位、或者是执行以AOV (BOV) 和ANOV (BNOV)为条件的BC[D]、或RC[D]、 CC[D] 等指令,OVA(OVB)保持置1状态。RSBX 指令也可以清除OVA标志。 (iii)溢出标志位(OVA或OVB)位于ST0的9, 10位。 29
(v)溢出方式位OvN及溢出处理 溢出方式位M是ST的D9位,用来指定ALU运算 结果溢出的处理方式,当溢出产生时: ①若OⅤM=0,则对ALU的运算结果不作任何 调整,直接送入累加器; ②若OⅴM=1,则对ALU的运行结果进行调整 当正向溢出时,将32位最大正数007 FFFFFFFH 装入累加器; 当负向溢出时,将32位最小负数FF80000000 装入累加器。 ③状态寄存器ST0中与目标累加器相关的溢出标 志OVA或OVB被置1
(iV)溢出方式位OVM及溢出处理 溢出方式位OVM是ST1的D9位,用来指定ALU运算 结果溢出的处理方式,当溢出产生时: ① 若OVM=0,则对ALU的运算结果不作任何 调整,直接送入累加器; ② 若OVM=1,则对ALU的运行结果进行调整。 当正向溢出时,将32位最大正数00 7FFFFFFFH 装入累加器; 当负向溢出时,将32位最小负数FF 80000000H 装入累加器。 ③状态寄存器ST0中与目标累加器相关的溢出标 志OVA或OVB被置1。 30