📄 floatto1q15.lst
字号:
C166 COMPILER V6.04, FLOATTO1Q15 09/04/2007 16:24:43 PAGE 1
C166 COMPILER V6.04, COMPILATION OF MODULE FLOATTO1Q15
OBJECT MODULE PLACED IN FloatTo1Q15.OBJ
COMPILER INVOKED BY: C:\Keil\C166\BIN\C166.EXE FloatTo1Q15.c MODV2 BROWSE MODV2 DEBUG
stmt lvl source
1 /******************************************************************************
2 ; Module: FloatTo1Q15
3 ; Filename: FloatTo1Q15.c
4 ; Project: DSP library for C166S V2 Core
5 ;------------------------------------------------------------------------------
6 ; Compiler: Keil
7 ;
8 ; Version: V1.2
9 ;
10 ; Description: Changign the float format to 1Q15 format
11 ;
12 ; Date: May 2003
13 ;
14 ; Copyright: Infineon Technologies AG
15 ;*****************************************************************************/
16
17 /******************************************************************************
18 ; DataS FloatTo1Q15(float X);
19 ;
20 ; INPUTS:
21 ; X the input value in float format
22 ;
23 ; RETURN:
24 ; Y the output value in 1Q15 format
25 ;
26 ; ALGORITHM: According to the IEEE-754 format
27 ;
28 ; REGISTER USAGE:
29 ; 1. From .c file to .asm file:
30 ; (R8)=mmmmmmmmmmmmmmmm
31 ; (R9)=seeeeeeeemmmmmmm (s:sign; e:exponent; m:mantissa)
32 ;
33 ; 2. From .asm file to .c file:
34 ; (R4)=y
35 ;
36 ; Assumption:
37 ;
38 ;*****************************************************************************/
39
40 #include "DspLib_Keil.h"
41
42 DataS FloatTo1Q15(float x)
43 {
44 1 __asm
45 1 {
46 1 //read the exponent bits in R3
47 1 MOV R3,R9 ;(R3)=R9
48 1 SHL R3,#1h ;(R3)<<1
49 1 SHR R3,#8h ;(R3)>>8 = e
50 1 SUB R3,#7fh
51 1 JMPR cc_ULT,next ;if((R3)<127), jump
52 1 //if x=1
53 1 MOV R4,#07fffh ;(R4)=32767, in the case x=1
54 1 //read sign bit
55 1 MOV R2,R9 ;(R2)=(R9)
C166 COMPILER V6.04, FLOATTO1Q15 09/04/2007 16:24:43 PAGE 2
56 1 SHR R2,#0fh ;(R2)=(R2)>>15 =s
57 1 JMPR cc_Z,ende
58 1 //if x=-1
59 1 MOV R4,#8000h ;(R4)=32768, in the case x=-1
60 1
61 1 RET
62 1
63 1 next:
64 1 //read the mantissa in R4
65 1 MOV R4,R9 ;(R4)=(R9)
66 1 SHL R4,#9h ;(R4)<<9
67 1 SHR R4,#1h ;(R4)>>1
68 1 SHR R8,#8h ;(R8)>>8
69 1 ADD R4,R8 ;(R4)=(R4)+(R8)
70 1 SHR R4,#1h ;(R4)=(R4)>>1
71 1 ADD R4,#4000h ;(R4)=(R4)+2^14
72 1
73 1 //output in 1Q15 format
74 1 ADD R3,#1h ;(R3)=(R3)+1
75 1 NEG R3 ;(R3)=-(R3)
76 1 CMP R3,#0fh
77 1 JMPR cc_SLT,next1;if (R3)<15, jump
78 1 MOV R4,#0h;
79 1
80 1 RET
81 1
82 1 next1:
83 1 SHR R4,R3
84 1 //read the sign bit R2
85 1 MOV R2,R9 ;(R2)=(R9)
86 1 SHR R2,#0fh ;(R2)=(R2)>>15 =s
87 1 JMPR cc_Z,ende
88 1 NEG R4
89 1
90 1 ende:
91 1
92 1 RET
93 1
94 1 }
95 1 }
*** WARNING C47 IN LINE 42 OF FLOATTO1Q15.C: 'x': unreferenced parameter
96 //------------------- END OF FILE ----------------------------------------------
97
MODULE INFORMATION: INITIALIZED UNINITIALIZED
CODE SIZE = 72 --------
NEAR-CONST SIZE = -------- --------
FAR-CONST SIZE = -------- --------
HUGE-CONST SIZE = -------- --------
XHUGE-CONST SIZE = -------- --------
NEAR-DATA SIZE = -------- --------
FAR-DATA SIZE = -------- --------
XHUGE-DATA SIZE = -------- --------
IDATA-DATA SIZE = -------- --------
SDATA-DATA SIZE = -------- --------
BDATA-DATA SIZE = -------- --------
HUGE-DATA SIZE = -------- --------
BIT SIZE = -------- --------
INIT'L SIZE = -------- --------
END OF MODULE INFORMATION.
C166 COMPILER V6.04, FLOATTO1Q15 09/04/2007 16:24:43 PAGE 3
C166 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -