Texas Instruments TMS320C3x 사용자 설명서

다운로드
페이지 757
Floating-Point Conversion (IEEE Std. 754)
5-19
Data Formats and Floating-Point Operation
Example 5–5. IEEE-to-TMS320C3x Conversion (Complete Version)
*
TITLE IEEE TO TMS320C3x CONVERSION (COMPLETE VERSION)
*
*
*
SUBROUTINE FMIEEE1
*
*
FUNCTION: CONVERSION BETWEEN THE IEEE FORMAT AND THE TMS320C3x
*
FLOATING-POINT FORMAT. THE NUMBER TO BE CONVERTED
*
IS IN THE LOWER 32 BITS OF R0. THE RESULT IS STORED
*
IN THE UPPER 32 BITS OF R0.
*
*
*
UPON ENTERING THE ROUTINE, AR1 POINTS TO THE FOLLOWING TABLE:
*
*
(0) 0xFF800000 <
– –
 AR1
*
(1) 0xFF000000
*
(2) 0x7F000000
*
(3) 0x80000000
*
(4) 0x81000000
*
(5) 0x7F800000
*
(6) 0x00400000
*
(7) 0x007FFFFF
*
(8) 0x7F7FFFFF
*
*
ARGUMENT
ASSIGNMENTS:
*
ARGUMENT
|
FUNCTION
*
–––––––––––+–––––––––––––––––––––––––––––––––––––
*
R0
|
NUMBER TO BE CONVERTED
*
AR1
|
POINTER TO TABLE WITH CONSTANTS
*
*
REGISTERS USED AS INPUT: R0, AR1
*
REGISTERS MODIFIED: R0, R1
*
REGISTER CONTAINING RESULT: R0
*
*
NOTE:
SINCE THE STACK POINTER SP IS USED, MAKE SURE TO 
*
INITIALIZE IT IN THE CALLING PROGRAM.
*
*
*
CYCLES: 23 (WORST CASE)     WORDS: 34
*
.global
FMIEEE1
*
FMIEEE1
LDI
R0,R1
AND
*+AR1(5),R1
BZ
UNNORM
;
If e = 0, number is either 0 or
*
;
denormalized
XOR
*+AR1(5),R1
BNZ
NORMAL
;
If e < 255, use regular routine