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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? float.asm

?? PIC子程序
?? ASM
字號(hào):
;*******************************************************************
;       Binary Floating Point Addition, Subtraction, Multiplication
;                       and Divide routines.
;
;*******************************************************************;
;
;   Addition :  ACCb(16 bits) + ACCa(16 bits) -> ACCb(16 bits)
;      (a) Load the 1st operand in location ACCaLO & ACCaHI ( 16 bits ) with
;          the 8 bit exponent in EXPa.
;      (b) Load the 2nd operand in location ACCbLO & ACCbHI ( 16 bits ) with
;          the 8 bit exponent in EXPb.
;      (c) CALL F_add
;      (d) The result is in location ACCbLO & ACCbHI ( 16 bits ) with
;          the 8 bit exponent in EXPb
;
;       Program Memory :        55 locations
;
;*******************************************************************;
;
;   Subtraction : ACCb(16 bits) - ACCa(16 bits) -> ACCb(16 bits)
;      (a) Load the 1st operand in location ACCaLO & ACCaHI ( 16 bits ) with
;          the 8 bit exponent in EXPa .
;      (b) Load the 2nd operand in location ACCbLO & ACCbHI ( 16 bits ) with
;          the 8 bit exponent in EXPb .
;      (c) CALL F_sub
;      (d) The result is in location ACCbLO & ACCbHI ( 16 bits ) with
;          the 8 bit exponent in EXPb.
;
;       Program Memory :        61 locations
;
;*******************************************************************;
;
;   Multiplication :
;   ACCb(16 bits)EXP(b) * ACCa(16 bits)EXPa -> ACCb(16 bits)EXPb
;   where, EXP(x) represents an 8 bit exponent.
;      (a) Load the 1st operand in location ACCaLO & ACCaHI ( 16 bits ) with
;                               an 8 bit exponent in location EXPa
;      (b) Load the 2nd operand in location ACCbLO & ACCbHI ( 16 bits ) with
;                               an 8 bit exponent in location EXPb
;      (c) CALL F_mpy
;      (d) The 16 bit result overwrites ACCb(ACCbLO & ACCbHI). The exponent
;               is stored in EXPb and the results are normalized.
;
; NOTE : If one needs to get a 32 bit product( & an 8 bit exponent ),
;        re assemble the program after changing the line " Mode16 equ TRUE"
;        to " Mode16  equ  FALSE ".
;        If this option is chosen, then the 32 bit result is returned in
;        ( ACCbHI, ACCbLO, ACCcHI, ACCcLO ) and the 8 bit exponent in EXPb.
;        This method ( with " Mode16 equ FALSE " ) is NOT Recommended.
;
;       Program Memory :        102 locations
;
;*******************************************************************;
;
;   Division :
;       ACCb(16 bits)EXP(b) / ACCa(16 bits)EXP(a) -> ACCb(16 bits)EXP(b)
;                                       with Remainder in ACCc (16 bits)
;      (a) Load the Denominator in location ACCaHI & ACCaLO ( 16 bits )
;                                               with exponent in EXPa
;      (b) Load the Numerator in location ACCbHI & ACCbLO ( 16 bits )
;                                               with exponent in EXPa
;      (c) CALL F_div
;      (d) The 16 bit result is in location ACCbHI & ACCbLO
;                                       with exponent in EXPb
;      (e) The 16 bit Remainder is in locations ACCcHI & ACCcLO
;
;       Program Memory :        86 locations
;
;*******************************************************************;
;
ACCaLO  equ     10
ACCaHI  equ     11
EXPa    equ     12
ACCbLO  equ     13
ACCbHI  equ     14
EXPb    equ     15
ACCcLO  equ     16
ACCcHI  equ     17
ACCdLO  equ     18
ACCdHI  equ     19
temp    equ     1A
sign    equ     1B
;
	include "picreg.h"
;
Mode16  equ     TRUE            ; Change this to FALSE if a 32 bit propduct
;                               ; is desired for F_mpy routine.
;
	org     0
;*******************************************************************
;       Floating Point Subtraction  ( ACCb - ACCa -> ACCb )
;
F_sub   call    neg_A           ; At first negate ACCa; Then add
;
F_add   movf    EXPa,w          ; scale mantissas
	subwf   EXPb,w          ; find the greater exponent
	btfsc   STATUS,Z_bit
	goto    padd            ; exponents are equal
	btfsc   STATUS,CARRY    ;
	call    F_swap          ; if A > B then swap ( A<->B )
	movf    EXPa,w
	subwf   EXPb
scloop  call    shftSR
	incfsz  EXPb
	goto    scloop
	movf    EXPa,w
	movwf   EXPb
padd    movf    ACCaHI,w
	iorwf   ACCbHI,w
	movwf   sign
	call    D_add           ; compute double precision integer add
	btfss   sign,MSB
	btfss   ACCbHI,MSB
	retlw   0
	bcf     STATUS,CARRY
	incf    EXPb
	goto    shftR
;
;*******************************************************************
;         Double Precision Subtraction ( ACCb - ACCa -> ACCb )
;
D_sub   call    neg_A           ; At first negate ACCa; Then add
;
D_add   movf    ACCaLO,w        ; Addition ( ACCb + ACCa -> ACCb )
	addwf   ACCbLO          ;add lsb
	btfsc   STATUS,CARRY    ;add in carry
	incf    ACCbHI
	movf    ACCaHI,w
	addwf   ACCbHI            ;add msb
	retlw   0
;*******************************************************************
;
;
shftSR  bcf     STATUS,CARRY
	btfsc   ACCbHI,MSB
	bsf     STATUS,CARRY            ; set carry if < 0
shftR   rrf     ACCbHI
	rrf     ACCbLO
	retlw   0
;
shftSL  bcf     STATUS,CARRY
;
	if   Mode16
	rlf     ACCcLO
	rlf     ACCcHI
	endif
;
	rlf     ACCbLO
	rlf     ACCbHI
	bcf     ACCbHI,MSB
	btfsc   STATUS,CARRY
	bsf     ACCbHI,MSB
	retlw   0
;
;*******************************************************************
;   Binary Floating Point Multiplication :
;   ACCb(16 bits)EXP(b) * ACCa(16 bits)EXPa -> ACCb(16 bits)EXPb
;
F_mpy
	call    S_SIGN
	call    setup
mloop   bcf     STATUS,CARRY    ; clear carry bit       ??????????
	rrf     ACCdHI          ;rotate d right
	rrf     ACCdLO
	btfsc   STATUS,CARRY    ;need to add?
	call    D_add
	rrf     ACCbHI
	rrf     ACCbLO
	rrf     ACCcHI
	rrf     ACCcLO
	decfsz  temp            ;loop until all bits checked
	goto    mloop
;
	movf    EXPa,w
	addwf   EXPb
;
	IF   Mode16
	movf    ACCbHI
	btfss   STATUS,Z_bit
	goto    finup           ; if ACCbHI != 0
	movf    ACCbLO
	btfss   STATUS,Z_bit
	goto    Shft08          ; if ACCbLO != 0 && ACCbHI == 0
;
	movf    ACCcHI,w
	movwf   ACCbHI          ; if ACCb == 0, then move ACCc to ACCb
	movf    ACCcLO,w
	movwf   ACCbLO
	movlw   .16
	addwf   EXPb
	goto    finup
;
Shft08  movf    ACCbLO,w
	movwf   ACCbHI
	movf    ACCcHI,w
	movwf   ACCbLO
	movlw   .8
	addwf   EXPb
;
	ENDIF                   ; matching endif for IF Mode16
;
finup   btfss   sign,MSB
	goto    F_norm
;
	decf    ACCcLO          ; negate ACCc
	comf    ACCcLO
	btfsc   STATUS,Z_bit
	decf    ACCcHI
	comf    ACCcHI
	btfsc   STATUS,Z_bit
;
neg_B   decf    ACCbLO          ; negate ACCb
	comf    ACCbLO
	btfsc   STATUS,Z_bit
	decf    ACCbHI
	comf    ACCbHI
;
	goto    F_norm
;
;
;*******************************************************************
;
setup   movlw   .16             ; for 16 shifts
	movwf   temp
	movf    ACCbHI,w          ;move ACCb to ACCd
	movwf   ACCdHI
	movf    ACCbLO,w
	movwf   ACCdLO
	clrf    ACCbHI
	clrf    ACCbLO          ; clear ACCb ( ACCbLO & ACCbHI )
	retlw   0
;

;*******************************************************************
;   Floating Point Division :
;   ACCb(16 bits)EXP(b) / ACCa(16 bits)EXPa -> ACCb(16 bits)EXPb , with
;                               remainder in ACCc ( 16 bits ).
;
F_div   call    S_SIGN
	call    setup
	clrf    ACCcHI
	clrf    ACCcLO
dloop   bcf     STATUS,CARRY     ;????????
	rlf     ACCdLO
	rlf     ACCdHI
	rlf     ACCcLO
	rlf     ACCcHI
	movf    ACCaHI,w        ; check if ACCa > ACCb
	subwf   ACCcHI,w
	btfss   STATUS,Z_bit
	goto    nochk
	movf    ACCaLO,w
	subwf   ACCcLO,w        ;if msb equal then check lsb
nochk   btfss   STATUS,CARRY    ;carry set if c>a
	goto    nogo
	movf    ACCaLO,w        ;c-a into c
	subwf   ACCcLO
	btfss   STATUS,CARRY
	decf    ACCcHI
	movf    ACCaHI,w
	subwf   ACCcHI
	bsf     STATUS,CARRY    ;shift a 1 into b (result)
nogo    rlf     ACCbLO
	rlf     ACCbHI
	decfsz  temp            ;loop untill all bits checked
	goto    dloop
	movf    EXPa,w
	subwf   EXPb
	btfss   sign,MSB
	goto    F_norm
	decf    ACCbLO          ; negate ACCb
	comf    ACCbLO
	btfsc   STATUS,Z_bit
	decf    ACCbHI
	comf    ACCbHI
	goto    F_norm
;
;*******************************************************************
;
neg_A   comf    ACCaLO          ; negate ACCa ( -ACCa -> ACCa )
	incf    ACCaLO
	btfsc   STATUS,Z_bit
	decf    ACCaHI
	comf    ACCaHI
	retlw   0
;
;*******************************************************************
;
S_SIGN  movf    ACCaHI,W
	xorwf   ACCbHI,W
	movwf   sign
	btfss   ACCbHI,MSB        ; if MSB set go & negate ACCb
	goto    chek_A
;
	comf    ACCbLO          ; negate ACCb
	incf    ACCbLO
	btfsc   STATUS,Z_bit
	decf    ACCbHI
	comf    ACCbHI
;
chek_A  btfss   ACCaHI,MSB        ; if MSB set go & negate ACCa
	retlw   0
	goto    neg_A
;
;*******************************************************************
;      Normalize Routine
; Normalizes ACCb for use in floating point calculations.
; Call this routine as often as possible to minimize the loss
; of precission. This routine normalizes ACCb so that the
; mantissa is maximized and the exponent minimized.
;
;
;
F_norm  movf    ACCbHI
	btfss   STATUS,Z_bit
	goto    C_norm
	movf    ACCbLO
	btfsc   STATUS,Z_bit
	retlw   0
C_norm  btfsc   ACCbHI,6
	retlw   0
	call    shftSL
	decf    EXPb
	goto    C_norm
;
;*******************************************************************
;  Swap ACCa & ACCb   [ (ACCa,EXPa) <--> (ACCb,EXPb) ]
;
F_swap
	movf    ACCaHI,w
	movwf   temp
	movf    ACCbHI,w        ;ACCaHI <--> ACCbHI
	movwf   ACCaHI
	movf    temp,w
	movwf   ACCbHI
;
	movf    ACCaLO,w
	movwf   temp
	movf    ACCbLO,w        ;ACCaLO <--> ACCbLO
	movwf   ACCaLO
	movf    temp,w
	movwf   ACCbLO
;
	movf    EXPa,w
	movwf   temp
	movf    EXPb,w          ;EXPa <--> EXPb
	movwf   EXPa
	movf    temp,w
	movwf   EXPb
;
	retlw   0
;
;*******************************************************************
;                       Test Program
;*******************************************************************
;    Load constant values to (ACCa, EXPa) & (ACCb, EXPb) for testing
;
loadAB  movlw   1
	movwf   ACCaHI
	movlw   0FF             ; loads ACCa = 01FF EXP(4)
	movwf   ACCaLO
	movlw   04
	movwf   EXPa
;
	movlw   07F
	movwf   ACCbHI
	movlw   0FF             ; loads ACCb = 7FFF EXP(6)
	movwf   ACCbLO
	movlw   06
	movwf   EXPb
	retlw   0
;
main    nop
;
	call    loadAB          ; result of adding ACCb(EXPb)+ACCa(EXPa)->ACCb(EXPb)
	call    F_add           ; Here Accb = 403F, EXPb = 07
;
	call    loadAB          ; result of subtracting ACCb(EXPb)-ACCa(EXPa)->ACCb(EXPb)
	call    F_sub           ; Here Accb = 7F7F, EXPb = 06
;
	call    loadAB          ; result of multiplying ACCb(EXPb) * ACCa(EXPa)->ACCb(EXPb)
	call    F_mpy           ; Here ACCb = FF7E, EXPb = 12
;
	call    loadAB          ; result of dividing ACCb(EXPb) / ACCa(EXPa)->ACCb(EXPb) with
	call    F_div           ; remainder in ACCc. Here ACCb =4000, EXPb = FA (same as -6)
;                               ; & the remainder ACCc = 003F
;
self    goto    self
;
	org     PIC54
	goto    main
	END
;****************************************************************

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品一区二区| 色综合久久88色综合天天免费| 国产精品久久免费看| 91精品国产乱码久久蜜臀| 91色视频在线| 91片在线免费观看| 97超碰欧美中文字幕| 久久国产精品第一页| 激情小说亚洲一区| 国产精品亚洲人在线观看| 紧缚捆绑精品一区二区| 久久久精品免费免费| 青青草97国产精品免费观看| 日韩和欧美的一区| 免费亚洲电影在线| 精品一区二区三区免费毛片爱| 美国三级日本三级久久99| 免费观看在线综合色| 国产一区二区调教| 成人h动漫精品一区二| 成人h动漫精品| 91成人免费电影| 欧美亚洲日本一区| 日韩一区二区三区电影在线观看| 日韩欧美一级片| 亚洲国产高清不卡| 亚洲综合免费观看高清完整版在线| 亚洲另类在线视频| 天天综合网天天综合色| 免费av网站大全久久| 国产在线播放一区| 91国产成人在线| 欧美一区二区成人6969| 日本一区二区三区高清不卡| 亚洲码国产岛国毛片在线| 天堂久久一区二区三区| 国产精品一区一区三区| 色综合色狠狠天天综合色| 91精品国产麻豆| 中文字幕一区二区三区精华液 | 成人久久18免费网站麻豆 | 国产欧美日韩精品a在线观看| 国产色婷婷亚洲99精品小说| 99精品久久免费看蜜臀剧情介绍| 欧美三级日韩在线| 亚洲精品一区二区三区香蕉| 国产精品成人一区二区三区夜夜夜| 亚洲一区二区三区在线| 国产一区二区三区免费看| 色欧美片视频在线观看在线视频| 欧美电影免费观看高清完整版在线| 国产精品国模大尺度视频| 人禽交欧美网站| 成人在线视频首页| 日韩欧美黄色影院| 亚洲欧美一区二区三区久本道91| 久久精品国产**网站演员| 日本乱人伦一区| 欧美极品aⅴ影院| 亚洲成人自拍偷拍| 99久久精品免费看| 欧美精品一区二区三区蜜桃视频 | 在线亚洲高清视频| 欧美—级在线免费片| 麻豆精品国产传媒mv男同| 欧美日韩一区二区三区免费看 | 色综合久久久久| 国产精品少妇自拍| 国产一区二区视频在线播放| 日韩欧美电影一区| 日韩国产欧美在线播放| 欧美日韩一区久久| 一区二区三区精密机械公司| 国产91精品久久久久久久网曝门| 精品久久久久一区| 久久狠狠亚洲综合| 日韩午夜小视频| 秋霞午夜鲁丝一区二区老狼| 欧美日韩综合一区| 亚洲午夜久久久久久久久电影网| 一本大道综合伊人精品热热| 中文字幕欧美激情一区| 欧美大黄免费观看| 青青国产91久久久久久 | 亚洲成人免费av| 欧美日韩综合色| 五月天久久比比资源色| 91麻豆精品国产91久久久 | 92国产精品观看| 亚洲视频综合在线| 日本高清免费不卡视频| 亚洲国产精品麻豆| 欧美性视频一区二区三区| 亚洲色欲色欲www| 在线观看日韩精品| 午夜精彩视频在线观看不卡| 91精品久久久久久蜜臀| 黄网站免费久久| 中文字幕中文在线不卡住| 中文字幕一区二区三区乱码在线| 一本久久综合亚洲鲁鲁五月天| 一区二区成人在线视频| 欧美久久久久久久久久| 精品免费国产一区二区三区四区| 五月婷婷激情综合网| 亚洲欧美日韩国产综合| 一区二区三区在线高清| 国内精品第一页| 国产日韩欧美a| 天天综合网天天综合色| 日欧美一区二区| 91丝袜美腿高跟国产极品老师| 国产午夜精品一区二区三区四区| 91麻豆国产香蕉久久精品| 91视频观看免费| 日韩高清在线一区| 欧美xfplay| 欧美三级三级三级| 亚洲制服欧美中文字幕中文字幕| 欧美一区二区二区| 丰满亚洲少妇av| 午夜精品123| 日韩美女天天操| 色视频一区二区| 国产欧美日韩一区二区三区在线观看| 国产成人精品一区二区三区四区| 欧美激情中文不卡| 91麻豆产精品久久久久久| 青青草原综合久久大伊人精品 | 国产欧美日韩视频在线观看| aaa国产一区| 久久99国内精品| 亚洲欧美日本韩国| 国产欧美日韩在线| 一本大道久久a久久综合婷婷| 久久99精品久久久久久| 91精品久久久久久蜜臀| 日本精品裸体写真集在线观看| 免费看日韩a级影片| 欧美一级艳片视频免费观看| 91在线观看视频| 精品影视av免费| 国产日韩一级二级三级| 91 com成人网| 99精品视频一区| 成人性色生活片免费看爆迷你毛片| 一区二区三区四区视频精品免费 | 在线观看日韩高清av| 国产一区二区三区免费看| 亚洲大片免费看| 国产日韩欧美综合在线| 欧美成人一级视频| 91福利在线观看| 91亚洲男人天堂| 国产在线精品一区二区夜色 | 2023国产一二三区日本精品2022| 91丨porny丨在线| 99国产精品一区| 美女尤物国产一区| 天天色天天爱天天射综合| 国产精品毛片a∨一区二区三区| 欧美自拍偷拍午夜视频| 国产91精品一区二区麻豆亚洲| 五月天国产精品| 一个色在线综合| 一区二区三区国产豹纹内裤在线| 亚洲精品一卡二卡| ...xxx性欧美| 亚洲午夜免费电影| 亚洲一区二区三区四区在线 | 国产在线精品一区二区不卡了| 国产精品18久久久| 日韩 欧美一区二区三区| 蜜臀av在线播放一区二区三区| 久久精品理论片| 国产一区二区网址| 99国产一区二区三精品乱码| 色婷婷综合中文久久一本| 欧美挠脚心视频网站| 欧美日韩精品一区二区| 欧美成人一区二区| 国产日韩欧美激情| 国产精品国产三级国产aⅴ原创| 日本一区二区三区在线观看| 国产精品美女久久久久av爽李琼 | 日本视频一区二区三区| 国内外精品视频| 国产精品一区一区三区| 在线观看日韩一区| 5月丁香婷婷综合| 国产精品妹子av| 亚洲1区2区3区视频| 日本特黄久久久高潮| 成人国产精品视频| 欧美色综合网站| 欧美激情资源网| 亚洲一级在线观看| 国产黄色精品视频| 国产一区二区福利| 激情都市一区二区|