亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cnv04.s43

?? MSP430浮點庫
?? S43
?? 第 1 頁 / 共 2 頁
字號:
;==============================================================================
;  MSP430 Floating Point Package   Version 4.0 IAR
;
;  Conversion Subroutines
;  Texas Instruments Deutschland                IAR Version
;  Date:    January, 6 1997                     March, 14 2000
;  Author:  Lutz Bierl TID 4711
;  Version: 4.02                                4.03
;	    3.0   First version
;	    4.0   Comment enhancements and corrections
;
;============================================================================
;
;  This Conversion Package supports the following Integer Conversions:
;
;  CNV_BIN40   40 Bit binary to floating point		(24/40 mantissa)
;  CNV_BIN32U  32 Bit unsigned binary to floating point (24/40 mantissa)
;  CNV_BIN32   32 Bit signed binary to floating point	(24/40 mantissa)
;  CNV_BIN16U  16 Bit unsigned binary to floating point (24/40 mantissa)
;  CNV_BIN16   16 Bit signed binary to floating point	(24/40 mantissa)
;  CNV_BIN     40 Bit binary buffer to floating point	(24/40 mantissa)
;  CNV_FP_BIN  Floating point to binary 40 bits 	(24/40 mantissa)
;  CNV_BCD_FP  12 digit signed BCD  to floating point	(24/40 mantissa)
;  CNV_FP_BCD  FP number to signed 12 digit BCD number	(24/40 mantissa)
;
;  Errors are written to the Status Register SR: N = 0: no error
;						 N = 1: error occured
;
;  The conversion subroutines may be used for mantissas with 24 bits and
;  with 40 bits: the value of DOUBLE decides which length is used:
;  DOUBLE = 0:	24 bit mantissa (4 bytes per floating point number)
;  DOUBLE = 1:	40 bit mantissa (6 bytes per floating point number)
;
;  MSB=.31	   .23			  LSB=.0	   .FLOAT format
;  +-------------------------------------------+
;  | e.7 ... e.0 | sign | m.22 ........... m.0 |	   DOUBLE = 0
;  +--------------------.----------------------+
;   Exponent E	       DP     Mantissa M
;
;  MSB=.47	   .39				    LSB=.0 .DOUBLE format
;  +-----------------------------------------------------+
;  | e.7 ... e.0 | sign | m.38 ..................... m.0 | DOUBLE = 1
;  +--------------------.--------------------------------+
;   Exponent E	       DP     Mantissa M
;
;  Explanation of the FPP: see Metering Application Report
;============================================================================
;
;  For all Conversion Subroutines:
;
;  - Two (three) free words have to be allocated on the stack
;  - Arguments are not changed (except if on TOS)
;  - All pointers point to the MSB part of the numbers
;  - After the completion both pointers (and the SP) point to the result
;    on top of the stack (TOS)
;
;  Call Example (written for both formats):
;
;	CALL	  #FLT_SAV     ; Save registers
;	SUB	  #(ML/8)+1,SP ; Allocate stack for result
;	MOV	  #bcdb,RPARG  ; Load address of BCD-buffer to RPARG
;	CALL	  #CNV_BCD_FP  ; Convert BCD (or binary) number to FP
;	MOV	  #val3,RPARG  ; Load address of FP number to continue
;	CALL	  #FLT_xxx     ; Calculate next result
;	....	  ........     ; Continue until final result is calculated
;	CALL	  #CNV_FP_BCD  ; Convert final FP result to BCD
;	JN	  CNVERR       ; FP number too big for BCD buffer
;	POP	  bcdmsd       ; BCD number MSDs and sign
;	POP	  bcdmid       ; BCD digits MSD-4 to LSD+4
;	POP	  bcdlsd       ; BCD digits LSD+3 to LSD
;			       ; Stack is corrected by POPs
;	CALL	  #FLT_REC     ; Restore registers
;	....	  ........     ; Continue with program
;
;===========================================================================
; The flag SW_RND is defined in the user's program:
;
; SW_RND    EQU        0       ; 0: no rounding    1: rounding used
;
;   BEGIN OF THE FLOATING POINT CONVERSION SUBROUTINES
;
; Integer to Floating Point Conversions. A 3-word buffer is prepared and
; and converted. All conversions use this register buffer BIN_MSB to BIN_LSB.
;---------------------------------------------------------------------------
; 40 Bit binary to floating point (signed and unsigned). RPARG points to MSBs
; of a 3 word buffer. Range: -2^40+1 to +2^40-1 (-1.099x10^12 to +1.099x10^12)
; FF00 0000 0001 to 00FF FFFF FFFF
;
; Call    MOV   #BINMSB,RPARG   ; Pointer to MSBs of a 3 word number
;         CALL  #CNV_BIN40      ; Call conversion routine
;         ...                   ; Result on TOS (2 or 3 words FP number)
;
CNV_BIN40 MOV    @R5+,BIN_MSB
	  JMP	 CNVL$1

;---------------------------------------------------------------------------
; 32 Bit binary to floating point (signed). RPARG points to MSBs
; of a 2 word buffer. Range: -2^31 to +2^31-1 (-2.14x10^9 to +2.14x10^9)
;
; Call    MOV   #BINMSB,RPARG   ; Pointer to MSBs of a 2 word number
;         CALL  #CNV_BIN32      ; Call conversion routine
;         ...                   ; Result on TOS (2 or 3 words FP number)
;
CNV_BIN32 TST    0(R5)          ; Check sign
          JGE    CNV_BIN32U     ; Pos.: Use 32 bit unsigned conversion
          MOV    #0FFFFh,BIN_MSB ; Neg. number: set MSBs to FFFF
          JMP    CNVL$1
;
;---------------------------------------------------------------------------
; 32 Bit unsigned binary to floating point conversion. RPARG points to MSBs
; of a two word buffer. Rang e: 0...2^32-1
;
; Call    MOV   #BINMSB,RPARG   ; Pointer to MSBs of a 2 word number
;         CALL  #CNV_BIN32U     ; Call conversion routine
;         ...                   ; Result on TOS (2 or 3 words FP number)
;
CNV_BIN32U CLR   BIN_MSB        ; High word is cleared
CNVL$1    MOV    @R5+,BIN_MID
          MOV    @R5,BIN_LSB
          JMP    CNV_BIN
;
;---------------------------------------------------------------------------
; 16 Bit binary to floating point (signed). RPARG points to value.
; Range: -2^15 to +2^15-1 (-32768 to +32767)
;
; Call    MOV   #BINMSB,RPARG   ; Pointer to MSBs of a 1 word number
;         CALL  #CNV_BIN16      ; Call conversion routine
;         ...                   ; Result on TOS (2 or 3 words FP number)
;
CNV_BIN16 TST    0(R5)          ; Check sign
	  JGE	 CNV_BIN16U	; Use 16 bit unsigned conversion
          MOV    #0FFFFh,BIN_MID ; Neg. number: set MSBs to FFFF FFFF
          MOV    #0FFFFh,BIN_MSB
          JMP    CNVL$2
;
;---------------------------------------------------------------------------
; 16 Bit binary to floating point (unsigned). RPARG points to value.
; Range: 0 to +2^16-1 (0 to 65365)
;
; Call    MOV   #BINMSB,RPARG   ; Pointer to MSBs of a 1 word number
;         CALL  #CNV_BIN16U     ; Call conversion routine
;         ...                   ; Result on TOS (2 or 3 words FP number)
;
CNV_BIN16U CLR	 BIN_MSB	; Set MSBs to zero
	  CLR	 BIN_MID
CNVL$2    MOV    @R5,BIN_LSB

;---------------------------------------------------------------------------
; 48-bit signed integer in BIN_MSB to BIN_LSB
; This call may be used if the 48-bit number is yet in BIN_MSB to BIN_LSB
;
; Call    MOV   binmsb,BIN_MSB  ; Load MSBs of a signed 48 bit binary number
;         MOV   binmid,BIN_MID  ;
;         MOV   binlsb,BIN_LSB  ; Load LSBs
;         CALL  #CNV_BIN        ; Call conversion routine
;         ...                   ; Result on TOS (2 or 3 words FP number)
;
CNV_BIN   MOV	 BIN_MSB,2(SP)	; Store MSBs with sign in result MSBs
          TST    BIN_MSB        ; Check sign of number
          JGE    NORM           ; Pos.: yet ok
          INV    BIN_LSB        ; Neg.: Absolute value needed
          INV    BIN_MID        ; Invert value of 3-word buffer
          INV    BIN_MSB
          INC    BIN_LSB        ; Complement 3-word buffer
          ADC    BIN_MID
          ADC    BIN_MSB
	  JMP	 NORM		; Go to common conversion part
;
;---------------------------------------------------------------------------
; BCD to Floating Point Conversion. A 3-word buffer containing a signed BCD-
; integer number is converted to a 32 bit or 48 bit floating point number.
; RPARG points to the MSD word of the buffer. The MSB of this word contains
; the sign: 0 = positive, 1 = negative
; Range: -8x10^11 + 1 to +8x10^11 - 1
;
; Call:   RPARG points to MSDs of BCD-Buffer  (sign in MSB of MSD)
; Return: RPARG, RPRES and SP point to result on TOS
;
; Call    MOV   #BCDbuffer,RPARG   ; Pointer to MSDs of a 3 word buffer
;         CALL  #CNV_BCD_FP     ; Call conversion routine
;         ...                   ; Result on TOS (2 or 3 words FP number)
;
;
CNV_BCD_FP EQU   $
          MOV    RPARG,RPRES    ; Copy pointer
          IF     DOUBLE=1
          MOV    @R11+,BCD_MSB  ; Sign, MSD to MSD-3
          MOV    @R11+,BCD_MID  ; MSD-4 to LSD+4
          MOV    @R11,BCD_LSB   ; LSD+3 to LSD
          ELSE
          MOV    @R9+,BCD_MSB   ; Sign, MSD to MSD-3
          MOV    @R9+,BCD_MID   ; MSD-4 to LSD+4
          MOV    @R9,BCD_LSB    ; LSDs
          ENDIF
          MOV    BCD_MSB,2(SP)  ; Store MSBs with sign in result space
          CLR    BIN_MSB        ; Clear binary buffer
          CLR    BIN_MID
          CLR    BIN_LSB
;
; BCD to Binary Conversion: 12 BCD-digits to 40 bit binary
;
	  MOV	 #12*4,COUNTER	; Digit counter x 4 bits
          BIC    #08000h,BCD_MSB     ; Clear sign bit
BCD_LOP1  RLA    BIN_LSB        ; MPY binary result with 10
          RLC    BIN_MID
          RLC    BIN_MSB
          PUSH   BIN_MSB        ; Store doubled value
          PUSH   BIN_MID
          PUSH   BIN_LSB
          RLA    BIN_LSB        ; x 4
          RLC    BIN_MID
          RLC    BIN_MSB
          RLA    BIN_LSB        ; x 8
          RLC    BIN_MID
          RLC    BIN_MSB
          ADD    @SP+,BIN_LSB   ; x(8 + 2)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品三区| 亚洲午夜久久久久久久久电影网 | 国产成人欧美日韩在线电影| 成人av动漫在线| 91麻豆精品国产| 亚洲色图在线视频| 国产一区不卡在线| 69久久夜色精品国产69蝌蚪网| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 高清在线成人网| 欧美一卡二卡在线观看| 国产精品麻豆视频| 精品无码三级在线观看视频| 欧美日韩国产免费一区二区| 成人免费的视频| 亚洲免费高清视频在线| 欧美日韩精品免费| 久久国产剧场电影| 国产精品灌醉下药二区| 久久久久久久久久久久久久久99| 蜜臀av一区二区| 欧洲精品视频在线观看| 91老司机福利 在线| 成人黄色软件下载| 天天综合网天天综合色| 一区二区三区蜜桃| 玖玖九九国产精品| 亚洲成人综合网站| 欧美丰满嫩嫩电影| 91成人在线观看喷潮| 日韩av中文字幕一区二区三区 | 一区二区三区成人| 久久精品国产一区二区三区免费看| 日韩免费高清av| 欧美一区二区三区在线视频| 播五月开心婷婷综合| 久久精品国产77777蜜臀| 国产精品麻豆视频| 欧美美女bb生活片| 在线欧美一区二区| 国内精品伊人久久久久av影院| 欧美不卡在线视频| 日韩成人精品在线观看| 久久 天天综合| 国产精品久久久久一区二区三区 | 欧美老肥妇做.爰bbww视频| 免费人成在线不卡| 国产午夜精品在线观看| 在线播放视频一区| 亚洲国产激情av| 日韩一区欧美一区| 亚洲欧美日韩国产中文在线| 国产精品福利一区二区| 中文字幕一区三区| 亚洲国产电影在线观看| 91精品办公室少妇高潮对白| 99精品欧美一区| 欧美电影免费观看高清完整版在 | 日韩在线观看一区二区| av在线不卡网| 视频一区在线播放| 日韩中文字幕1| 国产河南妇女毛片精品久久久| 色婷婷激情久久| 成人久久视频在线观看| 成人中文字幕电影| 亚洲卡通欧美制服中文| 欧美丰满少妇xxxbbb| 国产精品一区专区| 亚洲男人电影天堂| 日韩美女视频在线| yourporn久久国产精品| 人人超碰91尤物精品国产| 国产亚洲精品久| 欧美丝袜丝交足nylons| 另类调教123区| 亚洲精品日韩专区silk| 精品乱人伦一区二区三区| 91亚洲男人天堂| 久久99精品国产.久久久久| 亚洲婷婷综合久久一本伊一区| 91精品国产全国免费观看| 国产91丝袜在线18| 蜜臂av日日欢夜夜爽一区| 亚洲欧美日韩综合aⅴ视频| 精品日韩在线观看| 欧美日韩午夜在线| 亚洲日本在线看| 大美女一区二区三区| 91久久精品网| 日韩一级大片在线| 色av成人天堂桃色av| 国产69精品久久久久777| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品国产三级国产| 亚洲精品一线二线三线| 欧美日韩亚洲综合一区二区三区| 丁香六月久久综合狠狠色| 美国十次综合导航| 性做久久久久久免费观看欧美| 中文字幕亚洲欧美在线不卡| 久久这里都是精品| 宅男在线国产精品| 欧美在线免费播放| 91首页免费视频| 成人丝袜视频网| 国产成人精品一区二区三区四区| 日韩制服丝袜av| 天天综合色天天综合| 亚洲综合丝袜美腿| 亚洲精品综合在线| 在线观看91视频| 蜜桃av噜噜一区二区三区小说| 久久色成人在线| 黄页视频在线91| 91精品国产一区二区三区| 在线免费精品视频| 在线一区二区观看| 色欧美日韩亚洲| 欧美日韩精品一区视频| 色综合久久综合| 色视频欧美一区二区三区| 在线观看av一区| 欧美一区二区三区白人| 日韩欧美国产一区二区在线播放 | 欧美一区二区三区四区视频| 欧美日韩国产综合草草| 欧美一级xxx| 久久久.com| 亚洲视频免费在线观看| 一区精品在线播放| 亚洲夂夂婷婷色拍ww47| 欧美精品一区二区三区在线| 国产精品三级视频| 欧美一区二区三区不卡| 不卡在线视频中文字幕| 久久色在线观看| 91麻豆福利精品推荐| 欧美亚洲日本国产| 欧美四级电影网| 日韩精品专区在线影院观看| 久久久精品欧美丰满| 自拍偷拍亚洲欧美日韩| 偷窥国产亚洲免费视频| 国产麻豆精品theporn| 在线观看91精品国产入口| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美日韩三级视频| 国产清纯在线一区二区www| 亚洲美女屁股眼交| 美女视频一区二区三区| 不卡区在线中文字幕| 欧美日韩精品专区| 欧美激情一区在线观看| 日韩经典中文字幕一区| 丁香婷婷深情五月亚洲| 五月激情六月综合| 日韩欧美另类在线| 在线观看91精品国产麻豆| 国产欧美一区二区三区鸳鸯浴 | 精品一区二区三区免费视频| 国产99精品国产| 欧美日韩极品在线观看一区| 久久久久国产免费免费| 午夜在线成人av| 成人av一区二区三区| 欧美成人精精品一区二区频| 亚洲精品午夜久久久| 国产成人aaaa| 日韩欧美国产不卡| 亚洲大片精品永久免费| av一本久道久久综合久久鬼色| 日韩精品一区二区三区蜜臀| 一区二区高清在线| 国产精品资源站在线| 日韩欧美国产一区二区三区| 亚洲乱码精品一二三四区日韩在线| 美洲天堂一区二卡三卡四卡视频 | 亚洲国产精品久久人人爱| 国产综合久久久久久鬼色| 欧美理论电影在线| 亚洲乱码国产乱码精品精可以看 | 亚洲九九爱视频| 成人app网站| 97se狠狠狠综合亚洲狠狠| 欧美成人精品1314www| 成人爱爱电影网址| 精品国产伦一区二区三区观看体验| 亚洲欧洲99久久| 国产成人综合视频| 精品久久久久一区二区国产| 亚洲与欧洲av电影| 在线视频国内自拍亚洲视频| 中文字幕亚洲成人| 成人av免费网站| 亚洲视频你懂的| 色欧美片视频在线观看 | 亚洲日本在线视频观看| 成a人片亚洲日本久久| 国产精品毛片大码女人|