![实验三C54X的浮点数的算术运算资料_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/f0be7646-5823-43fa-a46f-2a15c8a778d9/f0be7646-5823-43fa-a46f-2a15c8a778d91.gif)
![实验三C54X的浮点数的算术运算资料_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/f0be7646-5823-43fa-a46f-2a15c8a778d9/f0be7646-5823-43fa-a46f-2a15c8a778d92.gif)
![实验三C54X的浮点数的算术运算资料_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/f0be7646-5823-43fa-a46f-2a15c8a778d9/f0be7646-5823-43fa-a46f-2a15c8a778d93.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三、 C54X的浮点数的算术运算1 实验目的(1) 练习 TMS320C54X 汇编程序的编写与调试方法,重点练习 C54X 程序流程控制的方 法。(2) 学习并掌握应用 TMS320C54X 来进行浮点数的各种算术运算的算法实现。(3) 练习并掌握 TMS320C54X 的汇编语言的汇编指令系统的使用方法,重点练习具有 C54X 特点的一些在功能上有所扩展的特殊指令, 并了解这些指令在进行算术运算或 各种控制时所带来的方便。(4) 练习并掌握用 CCS 调试程序的一些基本操作。2 实验原理1)浮点数的表示方法 在定点运算中,小数点是在一个特定的固定位置。例如,如果一个 32-bit 的数
2、把小 数点放在最高有效位(也就是符号位)之后,那么就只有分数(绝对值小于1)才能被显示。在定点运算系统中,虽然在硬件上实现简单,但是表示的操作数的动态范围要受 到限制。使用浮点数,可以避免这个困难。一个浮点数由尾数 m、基数 b 和指数 e 三部分组成。即:m* be下图举例说明了 IEEE 标准里的浮点数表示方法。这个格式用带符号的表示方法来 表示尾数,指数含有 127 的偏移。在一个 32-bit 表示的浮点数中,第一位是符号位,记 为 S。接下来的 8-bit 表示指数,采用 127 的偏移格式(实际是 e-127 )。然后的 23-bit 表 示尾数的绝对值,考虑到最高一位是符号位,它
3、也应归于尾数的范围,所以尾数一共有24-bit1 8 23SBiased Exponent -eMantissa -f通常用该格式所表示的浮点数值如下:当0 e 255时为( 1)s*2e127*(1.f )在特殊情况下:比如说:十进制数 -29.625 可以用二进制表示为 -11101.101B ,用科学计数法表示为 -1.1101101*2 4,其指数为 127+4=131,化为二进制表示为 10000011B,故此数的浮点格当 e 0且f0时为( 1)s*2 126*(0.f)当e 0且f 0时为( 1)s* (0.0)当 e 255且 f 0时为( 1)s * 无穷大当 e 255且f
4、0时表示NAN (不表示一个数 )为 ,转换成16 进制表示为 0xC1ED0000 。又如在下面 程序中将要使用的浮点数12.0,用二进制表16 示为 1100B,用科学记数法表示为 1.1*23,其指数部分为 127+3=130 ,化为二进制表示 为 10000010B ,因此该数的浮点数格式为 ,转换成 16 进制表示为 0x41400000。浮点数 144.0,用二进制表示为 10010000B ,科学记数法记 为 1.001*2 7 , 指 数 部 分 为 127+7=134=10000110B , 该 数 的 浮 点 数 格 式 为,转换成 16 进制表示为 41300000H 。
5、2)浮点数运算的步骤 加法的运算步骤要在 C54X 上实现浮点运算,操作数必须变换成定点数,实际上就是一个数据格式 的转换问题,可以用以下代码段来实现:dldop1_hsw,a;将 OP1 装入累加器 A 中。sftaa,8sftaa,-8;通过先左移后右移使 AG = 0 。bcop1_zero,AEQ; 如果 OP1 是零,转入特殊处理。stha,-7,op1se;将符号和指数存储到 OP1SE 中。stla,op1lm;存储尾数的低位。and#07Fh,16,a;将浮点数格式中的符号和指数去掉得到尾数的高位。add#080h,16,a; 给尾数加上小数点前的“ 1”。stha,op1hm
6、;存储尾数的高位。执行完这段代码之后,操作数 1 就从原来在 op1_hsw 和 op1_lsw (共 32bit)中的浮点数格式转换为三部分: 指数和符号位 (存储于 op1se 中)、尾数低位 (存储于 op1lm 中) 以及尾数高位(存储于 op1hm 中),这时所有的数值就都转换为定点数的格式了。在上 述程序段中执行了sfta a,8 sfta a,-8 它是先把累加器 A中的值作算术左移 8位再算术右移 8位,其结果是使累加器 A 中的8 位保护位( bit39-bit32 )全清为 0 以免对以后的运算产生错误影响。注意上述代码中使用了一种双精度的寻址方式,指令为:dld op1_
7、hsw,a ;它受 st1中的 C16位的影响,在C16=0的情况下采用双精度的寻址方式, 把 op1_hsw 以及紧跟其后的一个字节的数据( op1_lsw )一起作为一个 32bit 的数装入累加器 A 中。 在 C16=1 的情况下该指令把 op1_hsw 和 op1_lsw 作为两个 16bit 的数装入累加器 A 中,op1_hsw 装在 AH 中, op1_lsw 装在 AL 中。使用该指令比较有效,只需用一个时钟周期 就可以装入 32bit 的数,这就比分步来装入要节约空间和时间。在这段程序中作了一个判断以提高程序运行的效率:当 op1 是零时就执行相对应的 特殊处理程序段 op
8、1-zero:op1_zero:return_op2:bd return_valuedld op2_hsw,a 执行该段程序即可快速的返回 将被调用来返回 op2 的值。;延迟跳转;将 OP2 作为结果装入 acc A 中op2 的值。这段程序在后面判断完 op2 远大于 op1 之后也由于实行的是带符号位的运算,所以要把尾数变成带符号的形式,即如果是正数就不改变其存储格式,而如果是负数,就要用补码来表示尾数,这部分的代码如下:17bitf op1se,#100h bc testop2,NTC ld #0,a dsub op1hm,a dst a,op1hm testop2:bitf op2s
9、e,#100h bc compexp,NTC;取出 op1符号位的值于 TC 位中;如果 TC = 0 则跳转到 testop2 处; 0 op1 的尾数,得到尾数的补码表示;将尾数存入 op1hm 和 op1lm 中;取出 op1符号位的值于 TC 位中;如果 TC = 0 则跳转到 compexp 处ld #0,a;dsub op2hm,a; 0 op1 的尾数,得到尾数的补码表示dst a,op2hm;将尾数存入 op1hm 和 op1lm 中通过上述过程,把浮点数分解为尾数和指数两个部分,对于浮点数的加法而言,计 算过程是左移指数较小的操作数的尾数, 使得两个操作数的指数一致, 相差几
10、位移几位, 再把尾数相加,归一化后输出。主要是要比较两个操作数指数的大小,这样才能决定到 底是尾数直接相加还是移位以后再相加,该段过程可以用以下的代码来实现:compexp:ldop1se,a;将操作数 1 的符号和指数位装入acc A 中and#00ffh,a;去掉符号位的影响ldop2se,b;将操作数 2 的符号和指数位装入acc B 中and#00ffh,a;去掉符号位的影响suba,b; op2 的指数 - op1 的指数结果赋给acc Bbcop1_gt_op2,BLT;跳到进行 op1 op2 的操作处bcop2_gt_op1,BGT;跳到进行 op2 op1 的操作处a_eq_
11、b:;执行 A = B 的操作dldop1hm,a;将操作数 1 的尾数( 32bit )放到acc A 中daddop2hm,a;将操作数 2的尾数与操作数 1的尾数进行 32bit 的双精;度加法bcres_zero,AEQ;如果结果零就转入专门处理过程ldop1se,b;将指数装入 acc B 中以准备规一化处理这里又有一个特殊的处理程序: 结果是零的情况。 当这种情况发生时, 处理很简单, 只需如下几步就可以完成处理:res_zero:bd return_value;延迟跳转sub a,a; acc A 中清零处理。nop在以上的程序中比较了 OP1和 OP2 的指数,需要注意的是,
12、在比较完指数大小之后 如果 OP1 的指数比较大就执行 op1_gt_op2 段代码,在这段代码中以 OP1 为基准,左移 次数较低的 OP2 的尾数,使 OP2 的指数与 OP1 的指数一致,具体程序如下:op1_gt_op2:abs b ;去掉符号位的影响sub #24,b ;判断 op1_se 是否比 op2_se 大 24bc return_op1,BGEQ ;如果 op1_se 远远大于 op2_se 则转入相应的返回 op1 的;操作18add#23,b;恢复指数的差值stlb,rltsign;存储指数差值以准备作为 RPC 使用dldop2hm,a;将 OP2 的尾数( 32bi
13、t )装入 acc A中rptrltsign;规范 OP2 以适应 OP1sftaa,-1bdnormalize;延迟方式执行跳转到 normalize 处ldop1se,b;将指数值装入 acc B 以准备规一化处理daddop1hm,a;将 OP1和 OP2的尾数相加该段代码使用指令rpt rltsignsfta a,-1来实现了对 OP2 的尾数的移位操作。 rpt 指令执行的循环次数由 rltsign 中的值决定,当 rltsign 中的值为 N 时, sfta 指令就执行 N+1 次,所以 B 累加器中的值在先减去 24 以后 只需要加 23 就可以装入 rltsign 中了。该段程
14、序中还有一个需要值得注意的是使用了延迟指令:bd normalize;延迟方式执行跳转到 normalize 处ld op1se,b;将指数值装入 acc B 以准备规一化处理dadd op1hm,a;将 OP1 和 OP2 的尾数相加bd 指令表示紧接着该指令的后面两条单字指令:ld、dadd 都要从程序存储器中取出先执行。这段程序执行完后,程序跳到 normalize 段,并且 acc B 中值为 op1se 中的值, acc A 中的值为 OP1 和 OP2的尾数的和(用双精度加法实现) 。完成对操作数之间的计算后就需要对结果数进行归一化操作。所谓归一化操作就是把 数据格式 转换为第 一
15、位 为符号位 ,紧接着 的一 位是非零 的数的格 式, 即是:S1xxxxxxxxxxxxxx 的形式。可以用如下的代码来实现:normalize:stha,rltsign;将带符号的尾数高位存入rltsign 单元中absa;去掉符号位的影响sftla,6;进行归一化的预处理,将acc 中的值左移 6 位expa;对 acc A 中的值进行规一化操作norm astt,rltexp;存储规一化时左移的数值到 rltexp中add#1,b;考虑到进位位所以要给指数加上“1”subrltexp,b;完成指数的归一化工作normalized:stlb,rltexp;将结果指数存在 rltexp 中
16、bcunderflow,BLEQ;如果 B 0 进行下溢处理sub#0ffh,b;进行上溢处理判断bcoverflow,BGEQ;如果 B 0 进行上溢处理sftla,-7;将尾数右移 7 位以方便以后合成为32bit 的浮点数格式stla,rltlm;存储低位的尾数and#07f00h,8,a;将最开始中小数点前的“ 1”省略stha,rlthm;存储高位的尾数19在这段代码中 acc A 中的值是由两个 24bit 的操作数定点相加而得到的,其 MSB 可 能在 bit24-bit0 中的任何一位,所以首先左移 6位让 bit24 移至 bit30 ,接下来通过:exp anorm a来归
17、一化 acc A 中的数据, exp 和 norm 指令联合使用之后 acc A 中的数据变成归一化形 式。比如:这两条指令执行之前 acc A 中的值为 0x01800000 ,执行以后 A 中的值为 0x60000000 。操作数左移的位数被存于寄存器T 中,如上述操作后寄存器 T 中的值为0x0006 ,所以最后的指数的计算还要减去寄存器 T 中的值才是最后结果的指数值。归一化完后要再把归一化后的定点数转变为浮点数,这是前面的转变浮点数为定点 数的逆过程,参照前述步骤可以用如下程序实现:Conversion of Floating Point Format to Packld rltsi
18、gn,9,a and #100h,16,aadd rltexp,16,asftl a,7dadd rlthm,a;将 rltsign 左移 9 位后 acc A 中;取出 rltsign 中的符号位,使 acc A 中的格式为; 0000 000S 0000 0000 0000 0000 0000 0000 ;将结果的指数存入 acc A 中满足浮点数格式的相应位置; A 中格式为: 0000 000S EEEE EEEE 0000 0000 0000 0000 ; A 中格式为: SEEE EEEE E000 0000 0000 0000 0000 0000 ;最终在 acc A 中得到 3
19、2 位的浮点数格式如下:; SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM这样综合上述的各个步骤,加法运算就可以实现了 。 减法的运算步骤减法运算的实现与加法运算几乎完全一样,只是在具体进行运算时使用的是减法指 令而不是加法指令。比如要进行的是被减数( OP3)与减数( OP4)的减法运算。首先是转换数据格式, 这一步与加法运算中的过转换程完全一样,在此就不再赘述了。然后要进行的是指数比 较判断、尾数移位对齐小数点后相减的操作,该部分程序代码如下:ldop3se,a;将操作数 3 的符号和指数位装入 acc A 中and#00ffh,a;去掉符号位的影响ldop
20、4se,b;将操作数 4的符号和指数位装入 acc B 中and#00ffh,b;去掉符号位的影响suba,b; op4 的指数 op3 的指数结果赋给 acc Bbcop3_gt_op4,BLT;进行 op3 op4 的操作bcop4_gt_op3,BGT;进行 op4 op3 的操作a_eq_b:;执行 A = B 的操作dld op3hm,a;将操作数 3的尾数( 32bit )放到 acc A中dsub op4hm,a;将操作数 4的尾数与操作数 1的尾数进行 32bit 的双精;度减法ld op3se,b;将指数装入 acc B 中以准备规一化处理在这段程序中比较了OP3和 OP4
21、的指数,需要注意的是,在比较完指数大小之后,如果 OP4 的指数比较大就执行 op4_gt_op3 段代码,在这段代码中以 OP4 为基准,左移 次数较低的 OP3 的尾数,使 OP4 的指数与 OP3 的指数一致,具体程序如下:op4_gt_op3:sub #24,b;判断 op4_se 是否比 op3_se 大 2420bcreturn_op4,BGEQ;如果 op4_se 远远大于 op3_se则转入相应的返回 op4 的;操作add#23,b;恢复指数的差值stlb,rltsign;存储指数差值以准备作为 RPC 使用dldop3hm,a;将 OP3 的尾数( 32bit )装入 ac
22、c A中rptrltsign;规范 OP3 以适应 OP4sftaa,-1bdnormalize;延迟方式执行跳转到 normalize 处ldop4se,b;将指数值装入 acc B 以准备规一化处理dsubop4hm,a;将 OP4和 OP3的尾数相减完成对操作数之间的计算后就需要对结果数进行归一化,之后转变为浮点数存储。 该过程与浮点数加法运算的归一化存储过程完全一样,读者可以参照前面的程序段编写 出这部分的代码。 乘法的运算步骤 当两个数相乘时,编程的大体框架还是与加减法一样的。同样要经过分离指数和尾 数,进行算术运算,以及最后的归一化存储这几个过程,只是运算时要遵循乘法运算的 规则把
23、指数相加,尾数相乘。需要注意的是,由于 C54X 的乘法器在一个指令周期内只 能完成 17bit*17bit 的二进制补码运算,故相乘运算需要分步实现,具体原理如下: 设是对两个数 OP5和OP6进行乘法运算。 将被乘数数 OP5的尾数分为 Q,R和 S三 部分, Q 表示尾数的高位的 8bit,R 和 S表示尾数低位的两字节。同样,乘数 OP6 也被 分为 X,Y和Z三部分, X 表示尾数的高位, Y 和Z表示尾数低位的两字节。于是有0 Q R Sop5 的 尾 数RS * YZ只存 储了结果 的高16位RS * 0X0Q * YZ+ 0Q * 0X高 16 位 始 终 为 0结果只表示了6
24、4bit 中的* 0 X Y Zop6的尾数result 32bit需要注意的是,进行的这种 32bit*32bit 的运算是有精度损失的。如上图所示, 32 位 数 0QRS 乘以 32 位数 0XYZ 所得的结果应该是一个 64bit 的值。由于 0Q*0X 的高 16bit 始终为 0,所以结果可以用一个 48 位的值准确表示。但是用于存储结果的存储单元长度 只有 32bit ,于是只有将最低的 16bit 省略掉,即把 RS*YZ 的低 16bit 略去,因此最后得 到的是一个有精度损失的 32bit 结果。由于进行的是带符号的运算, 所以在进行相乘运算时首先要确定最后结果的符号位。
25、根据“同号为正,异号为负”的原则,可以写出以下代码:21sign evaluation ldop5se,a;装入 op5 的指数和符号位xorop6se,a;与 op6 的指数和符号位相异或and#00100h,a;屏蔽指数得到符号位stla,rltsign;得到结果的符号位具体相乘的步骤可以用如下代码来实现,首先进行指数位的相加: exponent summation ldop5se,aand#00FFh,a;去掉符号位的影响ldop6se,band#00FFh,b;去掉符号位的影响sub#07fh,b;op6 的指数减去 127(避免结果加上两个 127 偏移)addb,a;加上 op5
26、的指数stla,rltexp;将指数结果存于 rltexp 中bcunderflow,ALT;如果 exp 255 则跳转到下溢处理 overflow 处ld op5lm,t将 OP5 的低位尾数装入 T 寄存器mpyu op6lm,ampyu op6hm,bRS*YZRS*0Xadd a,-16,bB=(RS*YZ)+(RS*0X)ld op5hm,t将 OP5 的高位尾数装入 T 寄存器mpyu op6lm,a add b,aA=0Q*YZA=(RS*YZ)+(RS*0X)+(0Q*YZ)mpyu op6hm,bB=0Q*0Xstl b,rlthm得到 0Q*0X 的低 16bitadd
27、rlthm,16,aA=最后的结果然后对尾数运用上面的公式进行运算:指数部分的值大于 254 时,st#2,errnoldrltsign,16,bld#0FFFFh,aorb,7,abdreturn_valueadd#07F7Fh,16,ast #1,errno bd return_value;将出错位置以相应的表示位;延迟跳转22mpyu 指令,该指令将 T 寄存器中的值看作一个值得注意的是,该段代码中使用了 无符号数与无符号的单数据存储器操作数相乘,将结果放于指定的累加器中。这条指令 在执行这种多精度乘法运算时相当有效。同加法减法一样,乘法运算同样会产生上溢出和下溢出的情况,当上溢出发生,
28、即 就需要进行相应的上溢出的处理工作,具体的程序如下:overflow :;将出错位置以相应的表示位 ;将符号位装入 acc B 中 ;下溢出的结果低位为 0FFFFh ; ;Add sign bit ;延迟跳转 ;将结果的指数置为 0FEh 且把尾数的高 7 位 bit 全置为零当下溢出情况发生,即指数部分的值小于等于 0 时,执行下溢出处理的程序如下:underflow :sub a,anop;对于下出溢结果 = 0 除法的运算步骤除法运算的实现与乘法运算差不多,同样要经过分离指数和尾数,估计结果的符号 位,对指数进行相减运算,对尾数进行相除运算,以及最后的归一化存储这几个过程。 不同的是
29、, 在执行除法运算的时候, 需要将除数和被除数都由 24bit 左移成 32bit 的形式,以减少误差。设是对两个数 OP7和 OP8进行除法运算, 被除数 OP7左移后被分为 OP7HI(高 16bit),OP7LO(低 16bit )两部分,除数 OP8 左移后被分为OP8H(I 高 16bit ),OP8 LO(低16bit)两部分,设结果被分为QHI(高 16bit )和 QLO(低 16bit )两部分,于是就有OP7HI+OP7LOOP7HI+OP7LO1QHI+QLO=OP8HI+OP8LOOP8HI1+OP8LOOP8HI 设 X = OP8 LO/OP8 HI ,由泰勒展开式
30、可知:= 1 - x + x 2 - x3在进行数学计算时, x 的平方以后的项可以忽略,即可以用 1 x 代入式中进行计算,QHI+QLO=OP1HI+OP1LOOP1HI + OP1LO1 -OP2LO=*OP2HI+OP2LOOP2HIOP2HIQHI + QLO*OP2LO=*1 -OP2HI=QHI + QLO-QHI *OP2LOOP2HI故有:这就是用 DSP 进行除法运算的公式。 根据这个公式, 可以写出有关除法运算的代码:dldop7hm,a;;将被除数装入 acc A 中sftla,6;将被除数左移为除法作准备 ,因为 SUBC 要求被除数最高;位为 0,且被除数要小于除数
31、故只移 6 位dldop8hm,b;将除数装入 acc B 中sftlb,7;将除数左移为除法作准备,因为SXM 1,故要求最高;位为零,只移 7 位dstb,op8hm;将除数存于 op8hm 和 op8lm 中rpt#14;QHI=OP 7HI/OP 8HIsubc op8hm,astl a,rlthm;存储 QHIsubs rlthm,a;从 acc A 中清除 QHIrpt #15;QLO=OP7LO/OP823subc op8hm,astl a,rltlm;存储 QLOld rlthm,Tmpyu op8lm,asftl a,-1rpt #15subc op8hm,aand #0FF
32、FFh,aneg aadds rltlm,aadd rlthm,16,a;TQHI;存储 QHI *OP8 LO于 acc A;考虑到符号位对商的影响,所以应该右移一位得到正确 ;的有符号数;计算 QHI *OP8 LO/OP8 HI ;所得到的结果是修正值,放于 acc A 中 ;将修正值(在低 16bit )取出 ;将修正值的负号加上;加上 QLO;加上 QHI在经过上述这段除法运算程序之后, 结果就存储在累加器 A 中,再对之进行归一化, 并把数据格式从定点数转换为浮点数存储就完成了的除法计算。3 实验内容本实验需要使用 C54X 汇编语言实现两个浮点数的加、 减、乘、除运算, 并通过
33、CCS 的存储器窗口观察最后的结果是否正确。实验可以分为以下两步完成:(1) 编写实验程序代码 由于本实验是要用 C54X 的汇编语言实现两个浮点数的四种运算, 其中加、 减法比较 类似故可以用一个程序流程图来表示。加法的主要步骤是转换浮点数为定点数,执行加法时就像前面所讲的那样把尾数移 位对齐,再相加,同时还要注意一些特殊情况,比如其中一个数为零,或者是其中一个 数比另一个数小许多(即指数相差太大)等等。其程序的主要流程图如下:2425对于乘法运算,同样需要首先把被乘数和乘数的从浮点数格式分解为符号,指数, 尾数三部分,然后再把指数相加,注意是否产生上溢出( =0FFh )或下溢出( b ;
34、process op1 op2 ;process op2 op1a_eq_bdld op1hm,a dadd op2hm,a bc res_zero,AEQ ld op1se,b;add mantissa;if result is zero process special case ;load exponent in preparation for normalizingtrap 2normalizesth a,rltsign;Save signed mantissa on stackabs a;Create magnitude value of mantissasftl a,6;Pre no
35、rmalize adjustment of mantissaexp a;Get amount to adjust exp for normalizationnopnorm a;Normalize the resultst t,rltexp;Store exp adjustment valueadd #1,b;Increment exp to account for implied carrysub rltexp,b;Adjust exponent to account for normalizationnormalizedstl b,rltexp;Save result exponent on
36、 stackbc underflow,BLEQ;process underflow if occurssub #0ffh,b;adjust to check for overflowbc overflow,BGEQ;process overflow if occurssftl a,-7;Shift right to place mantissa for splittingstl a,rltlm;Store low mantissaand #07f00h,8,a;Eliminate implied onesth a,rlthm;Save result mantissa on stackld rl
37、tsign,9,a and #100h,16,a add rltexp,16,aConversion of Floating Point Format- Pack;Get the sign value;Add the result exponent together31sftl a,7 dadd rlthm,a;shift the value to right place ;Add the result mantissa togetherreturn_value trap 2 b fs_startop1_gt_op2abs b;if exp OP1 = exp OP2 + 24 then re
38、turn OP1sub #24,bbc return_op1,BGEQ add #23,bstl b,rltsign dld op2hm,a rpt rltsign sfta a,-1 bd normalize;restore exponent difference value;store exponent difference to be used as RPC ;load OP2 mantissa;normalize OP2 to match OP1ld op1se,b dadd op1hm,a;delayed branch to normalize result;load exponen
39、tvalue to prep for normalization ;add OP1 to OP2op2_gt_op1sub #24,bbc return_op2,BGEQ add #23,b stl b,rltsign dld op1hm,a rpt rltsign sfta a,-1 bd normalize;if exp OP2 = exp OP1 + 24 then return OP1;Restore exponent difference value;Store exponent difference to be used as RPC ;Load OP1 mantissa;Norm
40、alize OP1 to match OP2ld op2se,b dadd op2hm,a;Delayed branch to normalize result;Load exponent value to prep for normalization ;Add OP2 to OP1op1_zero: return_op2:;Put OP2 as result into Abd return_value dld op2_hsw,aop2_zero:return_op1:;Load signed high mantissa of OP1dld op1hm,a32bc op1_pos,AGT;If mantissa is negative .neg a;Negate it to make it a positive valueaddm #100h,op1se;Place
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《位置与方向》(教学设计)-2024-2025学年五年级上册数学人教版
- 北京市房山区房山中学高二体育上学期《排球选修》教案
- Unit4 Fun in the sun Project and Review 教学设计 2024-2025学年仁爱版英语七年级上册
- 新进教师代表入职发言稿(范文)
- 300203聚光科技2023年三季度信贷审批财务分析报告
- 宏观《巴西宏观经济、汇率、税率和消费市场展望》
- 2023年甘南州招聘县市事业单位工作人员考试真题
- 水利枢纽工程导流洞钢筋砼施工方案
- 七年级数学上册数学 6.4平行(二大题型)(解析版)
- 河北衡水高新区招聘中学教师笔试真题2023
- GB∕T 17215.321-2021 电测量设备(交流) 特殊要求 第21部分:静止式有功电能表 (A级、B级、C级、D级和E级
- 个人独资企业法案例
- 乙肝病毒“ 两对半”血清学临床检测意义
- 新教师过关课活动方案
- 新概念1B知识点总结
- 《宴会与菜单设计》课程设计及教案
- 米氮平抑郁症与睡眠障碍课件
- 膨润土的检测方法
- 串联质谱和气相色谱质谱技术在遗传代谢病病的诊治中的应用
- 人工湿地运行维护手册
- 新版仁爱版英语八年级上册单词表(带音标)
评论
0/150
提交评论