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

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

?? asm.asm

?? 與AVR開發(fā)相關的一百個實例,源碼用ASM語言編寫
?? ASM
?? 第 1 頁 / 共 5 頁
字號:
       ;范例18               ;定點小數(shù)十翻二
CONV4:  LDI     R17,32       ;r12r13r14r15<--r8r9r10r11<--(r12r13r14r15)
        MOV     R7,R17       ;左移32次
CV4:    CLC                  ;例:$0.FFFFFFD5<--0.99999999
        MOV     R16,R15      ;$0.FFFFFFFF92<--0.9999999999
        RCALL   LSDAA
        MOV     R15,R16
        MOV     R16,R14
        RCALL   LSDAA
        MOV     R14,R16
        MOV     R16,R13
        RCALL   LSDAA
        MOV     R13,R16
        MOV     R16,R12
        RCALL   LSDAA
        MOV     R12,R16      ;定點十進制小數(shù)左移并調整
        ROL     R11
        ROL     R10
        ROL     R9
        ROL     R8           ;定點二進制小數(shù)帶進位位左移一位
        DEC     R7
        BRNE    CV4
        MOV	  R12,R8       ;最終結果轉入R12--R15
	 MOV	  R13,R9
 	 MOV	  R14,R10
	 MOV     R15,R11
	 RET
	 
AVR實用程序                            
       ;范例19               ;等步距線性內插計算子程序
.EQU    TBLGTH=10
CHETA:  LDI     R16,TBLGTH-1 ;r16<--表長(即字數(shù))-1
        LDI     R31,HIGH(chtbl*2);y0(函數(shù)初值)在r14r15,STEP(步長)在r10r11,自變量X在r12r13
        LDI     R30,LOW(chtbl*2+1);查表指針,首指數(shù)據(jù)表第1字之高位字節(jié)!
        RCALL   CPMR1        ;X與表中第一個字型數(shù)據(jù)(X0)比較
        BRCC    CHRET        ;X<X0 查表結束,Y=Y0
CHET1:  RCALL   CMPR1        ;X與表中下一個數(shù)據(jù)比較
        BRCC    NX33         ;X<X(i+1) 找到插值區(qū)間
        ADD     R15,R11      ;否則Y0中加入一個STEP:Yk=Y0+k*step(步距為負時則
                                                   ;減去|STEP|)
        ADC     R14,R10
        DEC     R16          
        BRNE    CHET1        ;未查到表格終值,循環(huán);否則結束,Y取得最大值Yn
CHRET:  RET
NX33:   SBIW    R30,5        ;指針退回(-5),指向Xi
        MOV     R8,R14
        MOV     R9,R15       ;保存Y0+i*STEP
        RCALL   SUBS         ;(X-Xi)-->r16r17
        MOV     R15,R17
        MOV     R14,R16      ;轉入r14r15
        RCALL   MUL16        ;(X-Xi)*STEP-->r12r13r14r15
        MOV     R10,R12
        MOV     R11,R13      ;保存乘積高位字
        LPM                  ;X(i+1)低位字節(jié)
        MOV     R13,R0
        ADIW    R30,1
        LPM                  ;X(i+1)高位字節(jié)
        MOV     R12,R0
        SBIW    R30,3        ;指針指向Xi
        RCALL   SUBS         ;X(i+1)-Xi-->r16r17
        MOV     R12,R10
        MOV     R13,R11      ;取回乘積高位字
        MOV     R10,R16
        MOV     R11,R17      ;X(i+1)-Xi-->r10r11
        RCALL   DIV165       ;(X-Xi)*STEP/[X(i+1)-Xi]-->r14r15
        ADD     R15,R9
        ADC     R14,R8       ;Y0+i*STEP+(X-Xi)*STEP/[X(i+1)-Xi]-->r14r15
        RET                  ;若STEP為負值則改為計算(r8r9)減去(r14r15)之值
CMPR1:  LPM                  ;取數(shù)據(jù)高位字節(jié)
        ADIW    R30,2        ;指向下一數(shù)據(jù)的高位字節(jié)
        CP      R0,R12       ;與X高位字節(jié)相比較
        BRNE    CPRT1        ;不相等即轉出
        SBIW    R30,3        ;否則調整指針
        LPM                  ;取數(shù)據(jù)低位字節(jié) 
        ADIW    R30,3        ;指向下一數(shù)據(jù)的高位字節(jié)
        CP      R0,R13       ;與X低位字節(jié)相比較
CPRT1:  RET                  ;以進位C帶回比較結果
SUBS:   LPM                  ;計算(X-Xi)或[X(i+1)-Xi]并送入r16r17
        MOV     R5,R0        ;取Xi低位字節(jié)
        ADIW    R30,1
        LPM                  ;取Xi高位字節(jié)
        SBIW    R30,1        ;仍指向Xi低位字節(jié)
        SUB     R13,R5
        MOV     R17,R13
        SBC     R12,R0
        MOV     R16,R12       ;計算差并將其轉入R16R17
        RET
       ;自變量x表長為12字
CHTBL:DW 19214,23404,27600,32799,37009,40211,45414,48618,51821,55029,57787,60070
       ;步距表長為11字
STEPT:  DW  356,366,379,395,415,440,471,509,555,603,657
       ;不等步距線性內插計算子程序,步距表首址在R6R7中
       ;自變量X在R12R13之中, 函數(shù)初值Y0在R14R15中
       
       ;范例20               ;表長(字個數(shù))-1在R16中
CHTSTP: LDI     R31,HIGH(chtbl*2) 
        LDI     R30,LOW(chtbl*2+1);查表指針
        LDI     R16,LOW(stept*2)
        MOV     R7,R16
        LDI     R16,HIGH(stept*2)
        MOV     R6,R16        ;步距表指針
        LDI     R16,TBLGTH-1 ;r16<--表長(字個數(shù))-1
        RCALL   CMPR1        ;X與表首數(shù)據(jù)比較
        BRCC    CHSTPT       ;X<X0 查表結束,有Y=Y0
CHSTP1: RCALL   CMPR1        ;否則與表中下一數(shù)據(jù)比較
        BRCC    CHSTP3       ;X<X(i+1),找到插值區(qū)間!
        RCALL   GTSTP        ;查表取STEP字型變量
        ADD     R15,R11      ;Y0<--Y0+STEPk
        ADC     R14,R10
        DEC     R16          
        BRNE    CHSTP1       ;未查到表格終值循環(huán);否則結束,Y取得最大值Yn
CHSTPT: RET                  
CHSTP3: SBIW    R30,5        ;指針退回,指向Xi低位字節(jié)
        MOV     R8,R14
        MOV     R9,R15       ;Y0+∑STEPk送入r14 r15
        RCALL   SUBS         ;(X-Xi)->r16r17
        MOV     R15,R17
        MOV     R14,R16      ;(X-Xi)轉入R14R15
        RCALL   GTSTP        ;查表取STEPi-->R10R11
        RCALL   MUL16        ;(X-Xi)*STEPi-->R12R13R14R15
        MOV     R10,R12
        MOV     R11,R13      ;保存積高位字
        LPM
        MOV     R13,R0
        ADIW    R30,1
        LPM
        MOV     R12,R0
        SBIW    R30,3
        RCALL   SUBS         ;(X(i+1)-Xi)-->r16 r17
        MOV     R12,R10
        MOV     R13,R11
        MOV     R10,R16
        MOV     R11,R17      ;取回積高位字 &(X(i+1)-Xi)-->r10r11
        RCALL   DIV165       ;(X-Xi)*STEPi/[X(i+1)-Xi]-->r14r15
        ADD     R15,R9       ;
        ADC     R14,R8       ;Y0+∑STEPk+(X-Xi)*STEPi/[X(i+1)-Xi]-->r14r15
        RET
GTSTP:  MOV     R5,R6        ;查取STEP字型變量/POINTER in r6r7!
        MOV     R6,R30
        MOV     R30,R5
        MOV     R5,R7
        MOV     R7,R31
        MOV     R31,R5       ;(r6r7)<-->Z
        LPM
        MOV     R11,R0
        ADIW    R30,1
        LPM
        MOV     R10,R0       ;STEPk取到r10r11
        ADIW    R30,1        
        MOV     R5,R6
        MOV     R6,R30
        MOV     R30,R5
        MOV     R5,R7
        MOV     R7,R31
        MOV     R31,R5       ;指針增2后送回r6r7
        RET
        
       ;范例21               ;功能表程序
FUNC2:  LDS     R16,$A3      ;use r0,r8,r9,r10,r11,r16&r17/& subprogram dspa
        SBR     R16,$80      ;功能表程序標志
        STS     $A3,R16
        LDI     YH,2
        LDI     YL,0         ;功能內容表SRAM地址
        RCALL   FLFUNC       ;CLR r27!
        LDI     R16,2
        ST      X,R16        ;顯示'FUNC.2'
        RCALL   DL2S
        CLR     R9           ;功能內容尋址偏移量R9!
        CLR     R8           ;功能名稱尋址偏移量(R8)=(r9)*3
FFUNC0: RCALL   DSF_         ;顯示'F-  '
FF0:    RCALL   DSPA         ;in subprogram dspy clr. r27!
        CPI     R16,11       ;回車鍵按下?
        BRNE    FF2P
FF0C:   RCALL   COMBNO       ;合成功能名稱送入r16
        CPI     R16,20       ;是最后一個功能名稱?
        BRNE    FF1
        CLR     R9           ;是,兩偏移量初始化!
        CLR     R8           
FF1:    LDI     ZH,HIGH(FTABL*2)
        LDI     ZL,LOW(FTABL*2);功能名稱表指針
        ADD     ZL,R8
        ADC     ZH,R27       ;(r27)=0 ALWAYS
        LPM
        MOV     R16,R0
        RCALL   BRA3A        ;分解新功能名稱到$6E/$6F
FF0G:   LDI     R28,0
        ADD     R28,R9       ;功能內容指針加偏移量
        LD      R16,Y
        LDI     R26,$72
        RCALL   BRAX         ;將新功能內容分解到$72/$73
FF0A:   RCALL   DSPA         ;顯示新功能名稱/內容
        CPI     R16,11
        BRNE    FF0B         ;回車鍵按下?
        INC     R8           
        INC     R8
        INC     R8           ;是,功能名稱尋址偏移量加3 
        INC     R9           ;功能內容尋址偏移量加1
        RJMP    FF0C         ;轉回
FF2P:   RJMP    FF2
FF0B:   CPI     R16,10
        BRNE    FF0D
        RCALL   DSF_         ;清除鍵按下,清除顯示區(qū)后,顯示‘F-’
FF1B:   RCALL   DSPA
        CPI     R16,11
        BREQ    FF1          ;轉恢復當前顯示
        CPI     R16,10
        BRCC    FF1B
        RJMP    FF2D         ;只有數(shù)字鍵按下才轉出去處理
FF0D:   CPI     R16,10
        BRCC    FF0A
FF1D:   LDI     R17,$24      ;
        STS     $73,R17      ;數(shù)字鍵處理,先在緩存區(qū)內放一空白
FF0E:   LDS     R17,$73
        STS     $72,R17      ;鍵入數(shù)字左移
        STS     $73,R16      ;存入新數(shù)字 
FF0F:   RCALL   DSPA
        CPI     R16,10         
        BREQ    FF0G         ;清除鍵按下,恢復顯示舊功能內容
        BRCS    FF0E         ;鍵入數(shù)字左移更新
        CPI     R16,11
        BRNE    FF0F
        LDS     R26,$72      ;回車鍵按下
        RCALL   COMBA        ;合成新功能內容(combin $72&$73 into binary(r16))
        MOV     R17,R8
        INC     R17
        LDI     ZH,HIGH(FTABL*2)
        LDI     ZL,LOW(FTABL*2)
        ADD     ZL,R17       ;取當前功能內容下限
        ADC     ZH,R27
FF1F:   LPM
        CP      R16,R0
        BRCS    DSER2        ;新功能內容小于下限,錯誤
        INC     R17
        LDI     ZH,HIGH(FTABL*2)
        LDI     ZL,LOW(FTABL*2)
        ADD     ZL,R17       ;取當前功能內容上限
        ADC     ZH,R27
        LPM
        CP      R0,R16
        BRCS    DSER3        ;新功能內容大于上限,錯誤
FF7:    LDI     R28,0
        ADD     R28,R9       ;功能內容表首地址為$200!
        ST      Y,R16        ;合法的新功能內容進入功能內容表
        INC     R9           
        INC     R8
        INC     R8
        INC     R8           ;調整偏移量,進入下一個功能顯示
        RJMP    FF0C
FF1P:   RJMP    FF1
DSER2:  RCALL   FERR2        ;顯示'F Err.2'2秒
        RCALL   EXCH0        
        RJMP    FF0G         ;恢復原數(shù)據(jù)顯示
DSER3:  RCALL   FERR3        ;顯示'F Err.3'2秒
        RCALL   EXCH0        
        RJMP    FF0G         ;恢復原數(shù)據(jù)顯示
FF2:    CPI     R16,10
        BRCS    FF2D         ;功能鍵按下,轉初始
        RJMP    FF0          
FF2D:   LDI     R17,$24      ;數(shù)字鍵按下,在顯示緩存區(qū)內左移
        STS     $6F,R17      ;
FF3:    LDS     R17,$6F
        STS     $6E,R17
        STS     $6F,R16
FF4:    RCALL   DSPA
        CPI     R16,10
        BRNE    FF41
        RCALL   DSF_         ;清除數(shù)字,顯示‘F-’
FF40:   RCALL   DSPA
        CPI     R16,11
        BREQ    FF1P         ;轉回顯示當前功能名稱及內容
        CPI     R16,10
        BRCC    FF40         ;無效鍵按下,轉回
        RJMP    FF2D         ;否則轉數(shù)字處理
FF41:   BRCS    FF3
        CPI     R16,11
        BRNE    FF4
        RCALL   COMBNO       ;合成新功能名稱
        CLR     R10          ;功能名稱偏移量計數(shù)器清除
        CLR     R11          ;功能內容偏移量計數(shù)器清除
SFFLP:  LDI     ZH,HIGH(FTABL*2)
        LDI     ZL,LOW(FTABL*2)
        ADD     ZL,R10
        ADC     ZH,R27
        LPM
        CP      R0,R16       ;
        BREQ    SFFND        ;在功能名稱表中找到新名稱
        INC     R11          ;
        INC     R10
        INC     R10
        INC     R10          ;調整偏移量
        LDI     R17,60
        CP      R10,R17      ;功能名稱指針偏移量超過59?
        BRCS    SFFLP        ;否,繼續(xù)查功能名稱表
        RCALL   FERR1        ;查完功能名稱表未查到鍵入功能名稱!
        RJMP    FFUNC0       ;轉回恢復原顯示
SFFND:  MOV     R9,R11       ;得到功能內容指針偏移量
        MOV     R8,R10       ;得到功能名稱指針偏移量
        RJMP    FF0G         ;轉顯示新功能名稱及內容
FTABL:  .DB   1,0,1,2,1,8,3,0,2,4,0,1 5,1,2,6,0,4,7,1,4,8,1,2,9,2,7,10,1,5,11,1
        .DB   5,12,0,5,13,1,2,14,1,7,15,1,10,16,1,4,17,2,4,18,2,5,19,1,2,20,1,3
COMBNO: LDI     XL,$6E       ;取$6E$6F中的BCD碼,合成新功能名稱子程序
COMBA:  LD      R16,X+       
        CPI     R16,$24
        BRNE    CMBA
        CLR     R16
CMBA:   MOV     R0,R16
        LSL     R16
        LSL     R16
        ADD     R16,R0
        LSL     R16          ;高位BCD乘10
        LD      R0,X
        ADD     R16,R0       ;加低位BCD
        RET
DSF_:   RCALL   FIL8         ;準備顯示'F-  '
        LDI     R16,$0F
        STS     $6C,R16
        LDI     R16,$14
        STS     $6D,R16
        RET
BRA3A:  LDI     XL,$6E       ;二進制數(shù)轉換為兩位BCD碼并顯示
BRAX:   LDI     R17,$24      ;十位為0時顯示空白 
        ST      X,R17
BRHOUR: CLR     R0           ;
BRX0:   SUBI    R16,10       ;減10
        BRCS    BRX2
        INC     R0
        RJMP    BRX0
BRX2:   SUBI    R16,-10      ;不夠減恢復出十位BCD
        TST     R0
        BREQ    BRX1
        ST      X,R0         ;放入顯示區(qū)
BRX1:   INC     R26
        ST      X,R16
BRART:  RET
FERR1:  LDI     XL,$71       ;顯示'F Err.1'
        LDI     R16,1
        ST      X,R16
        RJMP    FER123

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕日本不卡| 久久蜜臀中文字幕| 亚洲国产日韩精品| 欧美精品久久久久久久多人混战 | av不卡免费电影| 国产精品日韩精品欧美在线| 成人午夜激情影院| 《视频一区视频二区| 在线观看91视频| 日韩黄色小视频| 精品日韩一区二区三区免费视频| 狠狠狠色丁香婷婷综合久久五月| 国产女主播一区| 日本乱人伦一区| 免费人成在线不卡| 精品国产乱码久久久久久夜甘婷婷| 国产成人三级在线观看| 亚洲欧美偷拍三级| 日韩西西人体444www| 高清不卡一区二区| 偷拍自拍另类欧美| 国产欧美综合在线观看第十页 | 九九精品视频在线看| 国产亚洲人成网站| 欧美综合久久久| 精品制服美女丁香| 亚洲人成在线观看一区二区| 91精品午夜视频| 成人aa视频在线观看| 日韩在线播放一区二区| 国产午夜亚洲精品羞羞网站| 欧美日精品一区视频| 国内精品视频一区二区三区八戒| 亚洲色图色小说| 欧美大胆一级视频| 在线观看国产一区二区| 国产成人综合在线| 丝袜a∨在线一区二区三区不卡| 国产嫩草影院久久久久| 欧美一区二区三区视频在线| 91看片淫黄大片一级| 国内精品国产三级国产a久久| 亚洲人成在线观看一区二区| 久久综合九色综合97_久久久| 欧美写真视频网站| 国产91在线|亚洲| 日本欧美加勒比视频| 亚洲精品视频在线看| 国产区在线观看成人精品 | jizzjizzjizz欧美| 久久国产尿小便嘘嘘尿| 午夜精品一区二区三区三上悠亚| 国产精品久久久久三级| xnxx国产精品| 欧美一区二区三区男人的天堂 | 欧美亚洲图片小说| 粉嫩一区二区三区性色av| 毛片av一区二区| 亚洲国产精品一区二区久久恐怖片| 国产欧美精品一区二区色综合| 欧美成人免费网站| 欧美一级日韩一级| 欧美三级午夜理伦三级中视频| 99免费精品在线| 高清不卡一二三区| 高清成人免费视频| 国产成人超碰人人澡人人澡| 国产永久精品大片wwwapp| 老司机午夜精品99久久| 日韩成人一级大片| 日本91福利区| 久久国产综合精品| 久久99国产精品尤物| 美女脱光内衣内裤视频久久网站 | 欧美mv和日韩mv的网站| 欧美精三区欧美精三区| 欧美精品乱人伦久久久久久| 欧美人xxxx| 欧美一级一区二区| 26uuu久久综合| 国产偷v国产偷v亚洲高清| 久久久激情视频| 国产视频一区二区三区在线观看| 欧美精品一区二区在线观看| 久久久久成人黄色影片| 亚洲国产精品av| 中文字幕亚洲电影| 亚洲一区二区三区自拍| 人人狠狠综合久久亚洲| 激情欧美一区二区| 成人免费视频网站在线观看| 91碰在线视频| 欧美性猛交xxxxxxxx| 欧美精选午夜久久久乱码6080| 日韩美女一区二区三区四区| 久久久国际精品| 中文字幕一区二区三区蜜月 | 国产欧美1区2区3区| 国产精品久久久久久久久免费樱桃| 亚洲色图制服诱惑| 亚洲国产成人av好男人在线观看| 麻豆91免费观看| 国产电影一区二区三区| 色先锋aa成人| 欧美精品在线观看播放| 亚洲精品一线二线三线无人区| 国产精品每日更新| 亚洲午夜视频在线| 久久精品国产一区二区三| 大尺度一区二区| 欧美精品在线一区二区三区| 久久久久免费观看| 一二三四区精品视频| 激情久久五月天| 色婷婷久久综合| 日韩一区和二区| 亚洲日本成人在线观看| 免费在线观看一区| 99国产精品久| 欧美va亚洲va香蕉在线| 亚洲精品欧美在线| 国产一区二区三区免费看| 色悠悠久久综合| 久久免费视频色| 亚洲国产精品久久久久婷婷884| 国产精品白丝av| 日韩一区二区免费高清| 亚洲视频 欧洲视频| 精品一区二区三区日韩| 在线免费视频一区二区| 国产欧美日韩综合| 日韩成人午夜电影| 一本色道a无线码一区v| 久久亚洲精品国产精品紫薇| 亚洲综合激情另类小说区| 成人小视频免费在线观看| 日韩欧美另类在线| 一区二区久久久久| av福利精品导航| 久久这里只精品最新地址| 亚洲国产精品久久久男人的天堂| 成人黄色电影在线| 久久综合九色综合97婷婷女人 | 欧美日韩黄视频| 国产精品久99| 国产黄色91视频| 精品少妇一区二区三区在线播放| 亚洲一区二区欧美日韩| 91看片淫黄大片一级在线观看| 国产无一区二区| 国产精品一级黄| 久久婷婷国产综合精品青草| 日本免费新一区视频| 欧美男男青年gay1069videost| 亚洲精品高清在线观看| 91视频在线观看免费| 国产精品女同一区二区三区| 国产美女av一区二区三区| 欧美一级欧美三级| 秋霞av亚洲一区二区三| 91麻豆精品国产自产在线观看一区 | 中文字幕一区二区三区色视频| 国产成人精品在线看| 久久男人中文字幕资源站| 麻豆精品一区二区| 日韩午夜在线影院| 久久狠狠亚洲综合| 久久品道一品道久久精品| 国产综合色在线| 欧美国产日韩在线观看| 成人精品一区二区三区中文字幕| 国产三级精品三级在线专区| 国产成都精品91一区二区三| 国产精品嫩草久久久久| 99久免费精品视频在线观看| 专区另类欧美日韩| 91福利精品第一导航| 亚洲成人高清在线| 欧美一区二区三区婷婷月色| 韩国毛片一区二区三区| 国产三级一区二区| 92精品国产成人观看免费| 亚洲激情六月丁香| 717成人午夜免费福利电影| 免费观看成人av| 国产亚洲成av人在线观看导航| 成人午夜免费av| 一区二区三区中文在线观看| 91精品国产美女浴室洗澡无遮挡| 蜜桃久久久久久| 国产精品国产三级国产三级人妇 | 成人午夜电影久久影院| 国产精品久久三| 欧美日韩一卡二卡| 午夜精品福利在线| 亚洲444eee在线观看| 国产成人福利片| 日韩视频一区二区三区| 国产 日韩 欧美大片| 亚洲男帅同性gay1069|