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

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

?? cnv04.s43

?? MSP430浮點庫
?? S43
?? 第 1 頁 / 共 2 頁
字號:
          ADDC   @SP+,BIN_MID
          ADDC   @SP+,BIN_MSB
;
	  CLR	 HELP		; BCD digit buffer
CNVL$5	  RLA	 BCD_LSB	; Next BCD digit to HELP
          RLC    BCD_MID
          RLC    BCD_MSB
	  RLC	 HELP		; insert BCD number
	  DEC	 COUNTER
	  BIT	 #3,COUNTER	; One BCD digit stored?
          JNZ    CNVL$5         ; Not yet, continue
;
	  ADD	 HELP,BIN_LSB	; BCD digit buffer contains BCD digit
	  ADC	 BIN_MID	; Add BCD digit to binary buffer
          ADC    BIN_MSB
	  TST	 COUNTER	; 12 BCD digits converted?
          JNZ    BCD_LOP1       ; No, next digit
;
; The converted binary number (max. 40 bits) is in the binary buffer.
; Shift left mantissa now until MSB = 1 (bit 7 of BIN_MSB). Create FP-sign
;
NORM	  SWPB	 2(SP)		; Stored sign from bit 15 to bit 7
	  AND	 #080h,2(SP)	; only sign remains
	  MOV.B  #080h+39,COUNTER ; max. exponent: true if MSB yet 1
NORM_LOP  TST.B  BIN_MSB	; Check if MSB = 1
          JN     NORMED         ; MSB = 1: normed mantissa
          RLA    BIN_LSB        ; Shift left 40 bit mantissa
          RLC    BIN_MID
          RLC.B  BIN_MSB
	  DEC.B  COUNTER	; Max. 39 times, decr. exponent
	  JN	 NORM_LOP	; if exponent < 080h: number < 1
;
; BCD number is 0: MSB is still 0 after 40 shifts. Output zero
;
	  JMP	 RES0		; Result is .FLOAT/.DOUBLE zero
;
; MSB of mantissa is 1 now: COUNTER contains exponent. Prepare FP number
; Rounding necessary only for .FLOAT format: .DOUBLE contains all 40 bits
; The completion part of the FPP is used for the number generation
;
NORMED	 MOV.B	 COUNTER,3(SP)	; Exponent in FPP format
      IF (DOUBLE=0) AND (SW_RND=1)  ; Conditions for rounding
	 RLA	 BIN_LSB	; MSB of BIN_LSB to carry (LSB-1)
	 JMP	 NORMLZ 	; Round mantissa with this bit
      ELSE
	 JMP	 DDRNZ		; Output FPP number without rounding
      ENDIF
;
;---------------------------------------------------------------------------
; Floating Point to Binary Conversion: the integer part of the Floating
; Point number RPARG points to is converted to a 40 bit signed binary number
; on top of the stack: (range FF00 0000 0001 to 00FF FFFF FFFF)
;
; Call:   RPARG points to the .FLOAT resp. .DOUBLE format number
; Return: the converted, signed 40 bit binary number is located on top
;	  of the stack (3 words). RPRES, RPARG and SP point to TOS
; Errors: N = 0: no error  (3 words result on TOS)
;	  N = 1: FP number > 2^39. The largest signed binary number is
;		 placed on TOS (00FF FFFF FFFF resp. FF00 0000 0001)
;
; Call    MOV   #FPnumber,RPARG ; Pointer to MSBs of a FP number
;         CALL  #CNV_FP_BIN     ; Call conversion routine
;	  JN	ERROR		; N=1: Largest number on TOS (3 words)
;         ...                   ; N=0: Result on TOS (3 words binary number)
;
CNV_FP_BIN  EQU  $
	  MOV	 #0FFFFh,HELP	; Set switch to binary conversion
	  JMP	 CNV_FP_GEM	; Use CNV_FP_BCD FP to binary part
;
;---------------------------------------------------------------------------
; Floating Point to BCD Conversion: the integer part of the Floating
; Point number RPARG points to is converted to a 12 digit BCD number
; on top of the stack:
;
; Call:   RPARG points to .FLOAT resp. .DOUBLE format number
; Return: the converted, signed 12 digit BCD number is located on top
;         of the stack (3 words)
; Errors: N = 0: no error  (3 words result on TOS)
;	  N = 1: |FP number| > 2^39 or |BCD number| >= 8 x 10^12
;		 The largest signed BCD number is placed on TOS:
;		 (+7999 9999 9999 resp. -7999 9999 9999)
;
; Call    MOV   #FPnumber,RPARG ; Pointer to MSBs of a FP number
;         CALL  #CNV_FP_BCD     ; Call conversion routine
;	  JN	ERROR		; N=1: Error: largest number on TOS (3 words)
;         ...                   ; N=0: Result on TOS (3 words BCD number)
;
CNV_FP_BCD MOV	 #0h,HELP	; Set switch to BCD conversion
CNV_FP_GEM  EQU  $                       ; Common part
          MOV.B  1(R5),COUNTER        ; Save exponent of FP number
          MOV    @R5+,BIN_MSB         ; Move FP number to BIN_xxx
          MOV    @R5+,BIN_MID
      IF  DOUBLE=1
          MOV    @R5,BIN_LSB
      ELSE
	  CLR	 BIN_LSB	; LSBs = 0 for .FLOAT numbers
      ENDIF
	  PUSH	 BIN_MSB	; Save FP MSBs with sign
;
	  BIS.B  #080h,BIN_MSB	; Set hidden bit in mantissa, clear HI byte
;
; The mantissa in BIN_xxx is shifted until the 2^0 bit is at the LSB
; of BIN_LSB: this is the case if the exponent (in COUNTER) is 080h+39
;
      IF  SW_RND
	  CLR	 BCD_LSB	; Clear Carry save for rounding
      ENDIF
EXP_LOP2   EQU   $
	  CMP.B  #080h+39,COUNTER     ; Exponent = 080h+39?
	  JEQ	 B_CNV		; Yes, binary buffer contains integer now
	  JHS	 CNV_ERR4	; FP number too large for BCD buffer (C = 1)
	  RRC	 BIN_MSB	; BIN_MSB: 00xxh  Carry = 0
	  RRC	 BIN_MID	; Exponent < 39: shift right binary buffer
	  RRC	 BIN_LSB
      IF  SW_RND
	  MOV	 SR,BCD_LSB	; Save last carry for rounding
      ENDIF
	  INC.B  COUNTER	; Incr. exponent
	  JMP	 EXP_LOP2

; 2^0 bit in BIN_LSB.0:
; Rounding is made if selected. The 2^-1 bit (LSB-1) is added
;
B_CNV      equ  $
      IF   SW_RND               ; Rounding selected?
	  BIT	#FC,BCD_LSB	; Test last carry for rounding
          ADC   BIN_LSB         ; Add it to binary buffer
          ADC   BIN_MID
          ADC   BIN_MSB
      ENDIF
;
; The value in HELP defines the kind of conversion:
; BCD_MSB = 0: FP to BCD conversion
; BCD_MSB # 0: FP to binary conversion

	  TST	HELP
          JZ    BCD_CNV
;
; Floating Point to Binary Conversion:
; The integer in the binary buffer is converted to signed binary
;
          MOV   BIN_LSB,BCD_LSB ; Move integer to BCD buffer
          MOV   BIN_MID,BCD_MID
          MOV   BIN_MSB,BCD_MSB
	  CLR	HELP		; No error indication
;
FPBIN	  POP	COUNTER 	; Restore MSBs and sign of FP number
	  TST.B COUNTER 	; Test sign
          JGE   CNVL$10         ; Sign is positive, output integer
          INV   BCD_LSB         ; Neg.sign: negate integer
          INV   BCD_MID
          INV   BCD_MSB
          INC   BCD_LSB
          ADC   BCD_MID
          ADC   BCD_MSB
          JMP   CNVL$10         ; Use common output part
;
; Floating Point to BCD Conversion:
; The integer in the binary buffer is converted to BCD in the BCD buffer
;
BCD_CNV   MOV	#40,COUNTER	; 40 binary bits max.
          CLR   BCD_LSB         ; Clear BCD buffer
          CLR   BCD_MID
          CLR   BCD_MSB
BCD_LOP2  RLA   BIN_LSB         ; Start binary to BCD conversion
          RLC   BIN_MID
	  RLC.B BIN_MSB 	; Only LO byte of MSBs is used: 00xx
          DADD  BCD_LSB,BCD_LSB ; Carry to LSB, double BCD-number
          DADD  BCD_MID,BCD_MID
          DADD  BCD_MSB,BCD_MSB
	  JC	CNV_ERR3	; Error: |FP number| >= 1 x 10^12
	  JN	CNV_ERR3	;	 |FP number| >= 8 x 10^11
	  DEC	COUNTER
	  JNZ	BCD_LOP2	; No error: HELP = 0
;
; The BCD buffer contains the converted 12 digit number: insert sign
;
FPBCD	  POP	COUNTER 	; Restore MSBs and sign of FP number
	  TST.B COUNTER 	; Test sign
          JGE   CNVL$10         ; Sign is positive
          BIS   #08000h,BCD_MSB ; Insert neg. sign to BCD buffer
CNVL$10    EQU  $
;
; Write result on top of stack
; .FLOAT:  One additional word is needed for the result. Push return address
; .DOUBLE: Three words for result are available
;
      IF  DOUBLE=0              ; .DOUBLE format places 3 words on stack
	  PUSH	2(SP)		; .FLOAT format: PUSH return address
      ENDIF                     ; to get room for 3 word result
          MOV   BCD_LSB,6(SP)   ; BCD result to stack
          MOV   BCD_MID,4(SP)
          MOV   BCD_MSB,2(SP)   ; MSDs on TOS (after return)
	  JMP	FLT_END 	; Use FPP completion part
;
; Error: |FP number| >= 1 x 10^12 or >= 8 x 10^11. N = 1
; Return with largest,signed BCD-number on TOS.
;
CNV_ERR3  MOV	#07999h,BCD_MSB ; largest BCD number
	  MOV	#09999h,BCD_MID ; 7999 9999 9999
	  MOV	#09999h,BCD_LSB
	  MOV	#FN,HELP	; indicate error
	  JMP	FPBCD		; output this number signed
;
; Error: |FP number| > 2^39. Check if BCD or binary conversion
;
CNV_ERR4  TST	HELP		; FP_BIN or FP_BCD?
	  JZ	CNV_ERR3	; FP_BCD conversion: output BCD number
          MOV.B #0FFh,BCD_MSB   ; FP_BIN conversion: output largest binary
	  MOV	#0FFFFh,BCD_MID ; number: 00FF FFFF FFFF
	  MOV	#0FFFFh,BCD_LSB
	  MOV	#FN,HELP	; indicate error
	  JMP	FPBIN		; output this number signed
;
;   END OF THE FLOATING POINT CONVERSION SUBROUTINES

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频一区不卡| 蜜桃av一区二区三区电影| 久久国产夜色精品鲁鲁99| 成人97人人超碰人人99| 久久夜色精品国产噜噜av | 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 91美女在线看| 国产精品久久久99| 色婷婷久久久亚洲一区二区三区| 国产日韩综合av| 精品一区二区免费| 日韩一区欧美一区| 精品污污网站免费看| 亚洲综合成人在线视频| 欧美在线制服丝袜| 韩国一区二区三区| 国产精品灌醉下药二区| 91麻豆精东视频| 亚洲自拍都市欧美小说| 欧美成人三级电影在线| 粉嫩欧美一区二区三区高清影视| 亚洲欧美一区二区视频| 欧美视频一区二区三区四区 | 亚洲精品v日韩精品| 欧美精品欧美精品系列| 狠狠色狠狠色综合| 中文字幕一区二区三| 欧美在线播放高清精品| 国产中文字幕精品| 亚洲婷婷国产精品电影人久久| 欧美手机在线视频| 成人在线视频首页| 日韩精品三区四区| 亚洲欧美日韩精品久久久久| 欧美美女一区二区| 99综合影院在线| 蜜臀av性久久久久av蜜臀妖精| 亚洲第一福利一区| 亚洲一卡二卡三卡四卡五卡| 国产欧美视频一区二区三区| 欧美一区二区不卡视频| 欧美日韩视频一区二区| 91婷婷韩国欧美一区二区| 国产主播一区二区| 久久精品国产一区二区三区免费看 | 欧美日韩在线播放三区| 国产一区二区三区四区五区入口 | 欧美理论电影在线| 色综合色综合色综合色综合色综合| 精品一区二区三区不卡| 亚洲成人黄色影院| 亚洲一区二区精品久久av| 玉足女爽爽91| 丝袜亚洲精品中文字幕一区| 午夜伊人狠狠久久| 日本欧美一区二区三区| 日韩av一二三| 韩国av一区二区三区| av在线不卡电影| 欧美精品电影在线播放| 欧美大黄免费观看| 久久久久久一二三区| 欧美国产日韩精品免费观看| 国产欧美一区二区精品仙草咪| 久久嫩草精品久久久久| 久久99久久精品欧美| 成人久久18免费网站麻豆| 在线精品亚洲一区二区不卡| 欧美日韩国产另类一区| 欧美电影免费观看高清完整版在线 | 亚洲日本韩国一区| 日韩av高清在线观看| www.日韩av| 7777女厕盗摄久久久| 久久九九久精品国产免费直播| 中文字幕一区免费在线观看| 亚洲一二三级电影| 久久成人久久鬼色| 一本到三区不卡视频| 91精品国产福利在线观看| 国产亚洲精品超碰| 午夜视频在线观看一区二区| 视频在线观看国产精品| 国产精品自拍三区| 欧美一级日韩免费不卡| 久久综合给合久久狠狠狠97色69| 图片区小说区区亚洲影院| 日韩经典一区二区| 成人性色生活片| 午夜私人影院久久久久| 成人永久免费视频| 国产亚洲综合色| 国产乱人伦偷精品视频不卡| 在线不卡欧美精品一区二区三区| 尤物在线观看一区| 欧美日韩成人一区| 久久成人18免费观看| 久久精品在这里| 国产真实乱对白精彩久久| 日韩亚洲欧美一区| 国产精品影视网| 亚洲激情一二三区| 一本大道av伊人久久综合| 亚洲免费观看高清完整版在线观看 | www.亚洲人| 亚洲国产美国国产综合一区二区| 色婷婷综合久久久中文字幕| 香蕉加勒比综合久久| 精品久久久网站| 在线免费观看不卡av| 日韩黄色免费网站| 久久综合久久99| 一本大道久久a久久精二百| 久久成人精品无人区| 国产精品电影院| 日韩一级欧美一级| 欧美色偷偷大香| 国产99久久精品| 丝袜美腿成人在线| 综合av第一页| 日韩精品一区二区三区在线 | 日韩一级免费观看| 99精品视频在线观看| 国产麻豆成人精品| 蜜桃视频一区二区三区| 亚洲国产另类精品专区| 欧美一级搡bbbb搡bbbb| 91官网在线免费观看| 国产在线不卡一卡二卡三卡四卡| ●精品国产综合乱码久久久久| 久久综合九色综合欧美亚洲| 欧美男人的天堂一二区| 色综合中文字幕| 成人av电影免费在线播放| 久久99久久久欧美国产| 一区二区三区**美女毛片| 久久久亚洲精品石原莉奈 | 爽爽淫人综合网网站| 裸体一区二区三区| 麻豆精品国产91久久久久久| 久久99精品一区二区三区三区| 日韩高清在线不卡| 精品一区二区三区欧美| 亚洲福利视频一区二区| 国产精品初高中害羞小美女文| 日韩伦理电影网| 亚洲男人电影天堂| 香蕉成人啪国产精品视频综合网| 国产精品中文字幕日韩精品| 99国产精品久| 欧美日韩国产一二三| 日韩精品一区二区三区在线观看| 精品国产乱码久久久久久图片| 久久日韩精品一区二区五区| 精品欧美一区二区久久| 久久精品视频一区二区| 亚洲欧美另类久久久精品| 午夜精品久久久久久| 国产麻豆91精品| 欧美在线一二三四区| 日韩视频在线一区二区| 亚洲国产成人一区二区三区| 中文字幕乱码一区二区免费| 国产精品你懂的在线| 一区二区三区在线看| 老汉av免费一区二区三区| 成人国产精品免费观看| 日韩一区二区三区免费看| 久久久久亚洲综合| 日韩黄色在线观看| youjizz久久| 7777精品伊人久久久大香线蕉| 久久亚洲免费视频| 五月综合激情婷婷六月色窝| 成人国产一区二区三区精品| 精品福利av导航| 午夜欧美在线一二页| 91猫先生在线| 国产精品理论片| 久久66热偷产精品| 欧美性大战久久久久久久蜜臀 | 亚洲日本在线观看| 成人免费视频app| 欧美成人综合网站| 亚洲第一二三四区| 成人动漫精品一区二区| 国产人成亚洲第一网站在线播放| 国产精品综合一区二区三区| 久久一二三国产| 99精品视频在线免费观看| 中文字幕一区二区三区蜜月| jizzjizzjizz欧美| 一级日本不卡的影视| 91精品在线观看入口| 国产69精品久久777的优势| 亚洲免费在线观看| 欧美电影免费观看高清完整版在线观看 | 中文字幕一区二区5566日韩| 亚洲一区二区美女| 欧美三级视频在线播放|