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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 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)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产999精品久久久久久| 欧美一区二区三区四区视频| 国产精品996| 狠狠色狠狠色综合系列| 日韩av一区二| 日韩成人精品在线| 日本在线不卡视频一二三区| 亚洲国产精品精华液网站| 亚洲国产日韩精品| 天堂蜜桃一区二区三区| 天天综合网 天天综合色| 亚洲午夜精品久久久久久久久| 亚洲午夜三级在线| 亚洲成人综合网站| 蜜臀av性久久久久蜜臀aⅴ| 久久精品国产精品亚洲红杏| 国产在线观看一区二区 | 成人av集中营| 99re亚洲国产精品| 一本一本大道香蕉久在线精品| 一本到三区不卡视频| 91在线你懂得| 欧美日韩一区二区三区四区| 欧美丰满一区二区免费视频 | 亚洲午夜精品在线| 午夜精品福利一区二区三区av| 天使萌一区二区三区免费观看| 琪琪久久久久日韩精品| 国产综合色在线视频区| 丁香婷婷综合网| 色噜噜狠狠色综合中国 | 久久电影国产免费久久电影| 精品亚洲成a人| 成人免费视频视频| 91看片淫黄大片一级| 欧美亚洲图片小说| 日韩精品一区二区三区四区| 久久久99免费| 亚洲免费观看高清完整版在线| 亚洲大片一区二区三区| 久久国产成人午夜av影院| 不卡一区二区中文字幕| 欧美体内she精高潮| 日韩欧美激情四射| 国产精品乱人伦| 亚洲成人1区2区| 国产乱色国产精品免费视频| 色综合天天天天做夜夜夜夜做| 在线播放一区二区三区| 国产午夜亚洲精品不卡 | 91色porny蝌蚪| 日韩精品一区二区三区在线播放 | 免费av网站大全久久| 丁香六月久久综合狠狠色| 欧美色视频在线观看| 久久婷婷色综合| 亚洲午夜日本在线观看| 丁香婷婷综合激情五月色| 欧美日韩免费电影| 中文字幕免费一区| 男女男精品视频| 色欧美日韩亚洲| 久久久美女艺术照精彩视频福利播放| 一区二区三区中文在线观看| 九色综合狠狠综合久久| 一本大道综合伊人精品热热| 日韩av成人高清| 成人精品免费视频| 日韩欧美国产一区二区在线播放 | 亚洲男人天堂一区| 韩国av一区二区三区在线观看| 欧美亚一区二区| 国产精品国产自产拍高清av| 另类欧美日韩国产在线| 91福利视频网站| 日韩一区在线看| 国产麻豆精品视频| 日韩欧美一区二区久久婷婷| 一区二区三区欧美日| 国产一区二区三区四区五区美女| 欧美午夜宅男影院| 国产精品蜜臀在线观看| 国模套图日韩精品一区二区 | 亚洲国产精品v| 久久99精品网久久| 欧美片网站yy| 亚洲国产综合人成综合网站| av在线播放不卡| 国产欧美1区2区3区| 国产最新精品精品你懂的| 日韩一区二区精品葵司在线| 亚洲国产成人tv| 在线这里只有精品| 亚洲精品视频在线看| 欧美猛男超大videosgay| 视频一区二区中文字幕| 欧美成人精品1314www| 日韩国产精品久久久久久亚洲| 欧美午夜影院一区| 麻豆91精品91久久久的内涵| 精品国产乱码久久久久久闺蜜| 人人精品人人爱| 精品国产免费人成在线观看| 成人综合婷婷国产精品久久| 国产精品第四页| 欧美电影免费观看完整版| 黄一区二区三区| 亚洲综合精品自拍| 91视频国产资源| 午夜欧美大尺度福利影院在线看 | 三级成人在线视频| 日韩免费在线观看| 欧美美女一区二区| 奇米一区二区三区av| 欧美精品一区二区三区蜜桃视频| 亚洲高清免费观看高清完整版在线观看| 色天天综合色天天久久| 日韩专区欧美专区| 中文字幕亚洲不卡| 久久精品欧美日韩| 毛片一区二区三区| 欧美一级日韩免费不卡| 亚洲综合色噜噜狠狠| 欧美私模裸体表演在线观看| 亚洲一区二区免费视频| 日韩欧美一区二区免费| 国产精品一区在线观看乱码| 亚洲欧美激情小说另类| 久久精品欧美一区二区三区不卡| 在线视频观看一区| 丁香另类激情小说| 国产精品1区2区3区| 亚洲观看高清完整版在线观看| 亚洲成人一区二区| 国产精品女同互慰在线看| 久久久久久毛片| 欧美成人猛片aaaaaaa| 欧美一区二区不卡视频| 久久精品国产秦先生| 久久色.com| zzijzzij亚洲日本少妇熟睡| 亚洲黄色免费网站| 日韩丝袜美女视频| 成人免费毛片aaaaa**| 一区二区三区免费| 日韩精品一区二区三区视频在线观看 | 4438成人网| 国产精品99久久久久久有的能看| 亚洲色图另类专区| 欧美一区二区三区系列电影| 国产成人精品综合在线观看 | 麻豆专区一区二区三区四区五区| 国产欧美日韩不卡免费| 欧美午夜在线一二页| 国产在线不卡视频| 亚洲午夜精品久久久久久久久| 精品福利一二区| 在线免费av一区| 国产在线精品一区二区不卡了 | 日韩理论在线观看| 宅男噜噜噜66一区二区66| 成人深夜福利app| 日本伊人精品一区二区三区观看方式| 久久免费看少妇高潮| 欧美主播一区二区三区美女| 国产乱子伦视频一区二区三区| 一区二区免费视频| 久久免费电影网| 欧美一区二区三区公司| 99久久99久久精品免费看蜜桃| 蜜桃精品视频在线| 亚洲高清在线视频| 国产精品久久久久久久久免费丝袜 | 日韩一区二区免费视频| 91视频你懂的| 国产黑丝在线一区二区三区| 天天综合日日夜夜精品| 亚洲视频网在线直播| 精品久久久久久亚洲综合网| 欧美丝袜丝交足nylons| 成人h动漫精品一区二区| 美女在线观看视频一区二区| 亚洲国产精品一区二区www| 国产精品无人区| 久久这里都是精品| 日韩亚洲欧美一区| 欧美性做爰猛烈叫床潮| av亚洲精华国产精华| 国产一区二区h| 久草热8精品视频在线观看| 亚洲成a人v欧美综合天堂| 亚洲欧美偷拍三级| 国产精品视频一区二区三区不卡| 欧美不卡一区二区三区| 欧美精品123区| 欧美日韩国产经典色站一区二区三区| 91免费版pro下载短视频| 福利一区二区在线观看| 国产乱码精品一区二区三区五月婷| 九九国产精品视频|