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

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

?? bitstream.s

?? ARM嵌入式系統開發--軟件設計與優化隨書源代碼。開發環境asm+c
?? S
字號:
;// ____________________________________________________________________
;//
;// Copyright (c) 2003, Andrew N. Sloss, Dominic Symes, Chris Wright
;// All rights reserved.
;// ____________________________________________________________________
;// 
;// NON-COMMERCIAL USE License
;// 
;// Redistribution and use in source and binary forms, with or without 
;// modification, are permitted provided that the following conditions 
;// are met: 
;//
;// 1. For NON-COMMERCIAL USE only.
;// 
;// 2. Redistributions of source code must retain the above copyright 
;//    notice, this list of conditions and the following disclaimer. 
;//
;// 3. Redistributions in binary form must reproduce the above 
;//    copyright notice, this list of conditions and the following 
;//    disclaimer in the documentation and/or other materials provided 
;//    with the distribution. 
;//
;// 4. All advertising materials mentioning features or use of this 
;//    software must display the following acknowledgement:
;//
;//    This product includes software developed by Andrew N. Sloss,
;//    Chris Wright and Dominic Symes. 
;//
;//  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY 
;//  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
;//  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
;//  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE CONTRIBUTORS BE 
;//  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 
;//  OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
;//  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
;//  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
;//  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 
;//  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 
;//  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
;//  OF SUCH DAMAGE. 
;//
;// If you have questions about this license or would like a different
;// license please email : andrew@sloss.net
;//
;// Section 6.7: Bit Manipulation

        AREA    ch06_7, CODE, READONLY
        
        EXPORT  bitstream_write_test
        EXPORT  bitstream_read_test

;// Example 6.24

;// register needed for the test harness
codes         RN 1  ; pointer to codes to insert in the bitstream
code_lens     RN 2  ; length of codes to insert in the bitstream

;// bitstream pack code
        
bitstream     RN 0  ; current byte address in the output bitstream
code          RN 4  ; current code
codebits      RN 5  ; length in bits of current code
bitbuffer     RN 6  ; 32-bit output big-endian bit buffer
bitsfree      RN 7  ; number of bits free in the bit buffer
tmp           RN 8  ; scratch register
mask          RN 12 ; endian reversal mask 0xFFFF00FF

bitstream_write_start
        MOV     bitbuffer, #0
        MOV     bitsfree, #32
align_loop
        TST     bitstream, #3
        LDRNEB  code, [bitstream, #-1]!
        SUBNE   bitsfree, bitsfree, #8
        ORRNE   bitbuffer, code, bitbuffer, ROR #8
        BNE     align_loop
        MOV     bitbuffer, bitbuffer, ROR #8
        MOV     pc, lr
        
bitstream_write_code
        SUBS    bitsfree, bitsfree, codebits
        BLE     full_buffer
        ORR     bitbuffer, bitbuffer, code, LSL bitsfree
        MOV     pc, lr
full_buffer
        RSB     bitsfree, bitsfree, #0
        ORR     bitbuffer, bitbuffer, code, LSR bitsfree
        IF {ENDIAN}="little"
          ; byte reverse the bit buffer prior to storing
          EOR   tmp, bitbuffer, bitbuffer, ROR #16
          AND   tmp, mask, tmp, LSR #8
          EOR   bitbuffer, tmp, bitbuffer, ROR #8
        ENDIF
        STR     bitbuffer, [bitstream], #4
        RSB     bitsfree, bitsfree, #32
        MOV     bitbuffer, code, LSL bitsfree
        MOV     pc, lr
        
bitstream_write_flush
        RSBS    bitsfree, bitsfree, #32
flush_loop
        MOVGT   bitbuffer, bitbuffer, ROR #24
        STRGTB  bitbuffer, [bitstream], #1
        SUBGTS  bitsfree, bitsfree, #8
        BGT     flush_loop
        MOV     pc, lr
        
        
        ; char *bitstream_write_test(char *bitstream, int *codes, char *code_lens)
bitstream_write_test
        STMFD   sp!, {r4-r11, lr}
        MVN     mask, #0x0000FF00
        BL      bitstream_write_start
write_next_code
        LDR     code, [codes], #4
        LDRB    codebits, [code_lens], #1
        BL      bitstream_write_code
        CMP     codebits, #N
        BLE     write_next_code
        BL      bitstream_write_flush
        LDMFD   sp!, {r4-r11, pc}

;// Example 6.25
        
;// registers needed for the test harness

codes         RN 1  ; pointer to codes read from the bitstream

;// bitstream unpack example        
        
bitstream     RN 0  ; current byte address in the input bitstream
look_code     RN 2  ; lookup table to convert next N-bits to a code
look_codebits RN 3  ; lookup table to convert next N-bits to a code length
code          RN 4  ; code read
codebits      RN 5  ; length of code read
bitbuffer     RN 6  ; 32-bit input buffer (big endian)
bitsleft      RN 7  ; number of valid bits in the buffer - N
tmp           RN 8  ; scratch
tmp2          RN 9  ; scratch
mask          RN 12 ; N-bit extraction mask (1<<N)-1
        
N             EQU 8 ; use a lookup table on 8 bits (N must be <= 9)
        

bitstream_read_start
        MOV     bitsleft, #32
read_fill_loop
        LDRB    tmp, [bitstream], #1
        ORR     bitbuffer, tmp, bitbuffer, LSL#8
        SUBS    bitsleft, bitsleft, #8
        BGT     read_fill_loop
        MOV     bitsleft, #(32-N)
        MOV     mask, #(1<<N)-1
        MOV     pc, lr

bitstream_read_code
        LDRB    codebits, [look_codebits, bitbuffer, LSR#(32-N)]
        AND     code, mask, bitbuffer, LSR#(32-N)
        LDR     code, [look_code, code, LSL#2]
        SUBS    bitsleft, bitsleft, codebits
        BMI     empty_buffer_or_long_code
        MOV     bitbuffer, bitbuffer, LSL codebits
        MOV     pc, lr
empty_buffer_or_long_code
        TEQ     codebits, #0xFF
        BEQ     long_code
        ; empty buffer - fill up with 3 bytes
        ; as N <= 9, we can fill 3 bytes without overflow
        LDRB    tmp, [bitstream], #1
        LDRB    tmp2, [bitstream], #1
        MOV     bitbuffer, bitbuffer, LSL codebits
        LDRB    codebits, [bitstream], #1
        ORR     tmp, tmp2, tmp, LSL#8
        RSB     bitsleft, bitsleft, #(8-N)
        ORR     tmp, codebits, tmp, LSL#8
        ORR     bitbuffer, bitbuffer, tmp, LSL bitsleft
        RSB     bitsleft, bitsleft, #(32-N)
        MOV     pc, lr
        
long_code
        ; handle the long code case depending on the application
        ; here we just return a code of -1
        MOV     code, #-1
        MOV     pc, lr
        
        ; int *bitstream_read_test(char *bitstream, int *codes,
        ;                          int *look_code, char *look_codebits)
bitstream_read_test
        STMFD   sp!, {r4-r11, lr}
        BL      bitstream_read_start
read_next_code        
        BL      bitstream_read_code
        CMP     code, #-1
        STRNE   code, [codes], #4
        BNE     read_next_code
        MOV     r0, codes
        LDMFD   sp!, {r4-r11, pc}
        
        END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99在线精品视频| 在线免费观看一区| 播五月开心婷婷综合| 91在线精品一区二区三区| 欧美日韩视频在线一区二区 | 欧美日韩国产乱码电影| 日韩欧美亚洲国产精品字幕久久久 | 韩国精品主播一区二区在线观看 | 亚洲国产综合人成综合网站| 日韩av一二三| 成人少妇影院yyyy| 欧美欧美欧美欧美| 国产精品色噜噜| 男男成人高潮片免费网站| 成人h精品动漫一区二区三区| 欧洲精品一区二区| 日韩一区二区免费高清| 国产精品久久久久毛片软件| 免费视频一区二区| 91美女片黄在线| 精品国精品国产| 亚洲成在线观看| 91最新地址在线播放| 精品欧美一区二区在线观看| 亚洲一区在线电影| 99久久综合精品| 欧美精品一区二区精品网| 亚洲一区二区三区四区在线 | 亚洲激情在线激情| 国产福利一区二区三区视频在线 | 亚洲女与黑人做爰| 国产福利一区在线| 日韩精品一区二区三区在线| 午夜视频在线观看一区二区三区| 成人av在线电影| 久久精品综合网| 精彩视频一区二区| 欧美色视频在线| 亚洲综合精品自拍| 国产传媒一区在线| 久久久国产一区二区三区四区小说| 日韩国产一区二| 欧美精品日韩一本| 亚洲va国产天堂va久久en| 在线一区二区三区| 久久精品亚洲精品国产欧美kt∨ | 久久99国产精品久久99果冻传媒 | 日韩综合小视频| 欧美午夜在线观看| 亚洲伊人伊色伊影伊综合网| 欧洲中文字幕精品| 亚洲国产日韩a在线播放| 91久久精品日日躁夜夜躁欧美| 成人免费视频在线观看| 91麻豆国产精品久久| 国产精品久久久久久久久免费樱桃| 大胆欧美人体老妇| 亚洲三级免费观看| 91影院在线观看| 亚洲一级电影视频| 正在播放亚洲一区| 国内精品免费**视频| 久久久久久久久久久99999| 国产高清成人在线| 国产精品色婷婷| 欧美在线免费视屏| 国产一区激情在线| 亚洲精品成人天堂一二三| 日韩欧美成人一区| 91在线观看高清| 蜜臀av一区二区在线观看| 亚洲国产精品av| 制服丝袜av成人在线看| 成人免费高清在线观看| 无码av免费一区二区三区试看| 久久亚洲二区三区| 欧美日韩色一区| 懂色中文一区二区在线播放| 性久久久久久久久久久久| 久久蜜桃av一区精品变态类天堂| 91亚洲精品乱码久久久久久蜜桃| 蜜臀久久99精品久久久久久9| 亚洲欧美怡红院| 精品国产电影一区二区| 精品视频1区2区3区| 成人免费的视频| 老司机午夜精品99久久| 一区二区三区视频在线观看 | 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产丶欧美丶日本不卡视频| 亚洲福利一二三区| 中文字幕日本不卡| 精品欧美久久久| 69p69国产精品| 欧美亚洲免费在线一区| jizzjizzjizz欧美| 国产成人免费视频网站| 麻豆久久一区二区| 日韩高清不卡一区| 午夜久久久久久| 亚洲综合清纯丝袜自拍| 亚洲欧美激情一区二区| 国产精品丝袜黑色高跟| 国产婷婷色一区二区三区| 欧美电影免费观看高清完整版在线观看 | 亚洲一级在线观看| 亚洲日本乱码在线观看| 国产精品夫妻自拍| 国产精品网曝门| 中文一区在线播放| 亚洲国产精品精华液ab| 久久中文娱乐网| 一区精品在线播放| 精品视频在线看| 最新不卡av在线| 国产精品久久久久aaaa| 国产精品青草久久| 国产精品每日更新在线播放网址| 国产喂奶挤奶一区二区三区| 国产午夜三级一区二区三| 久久日韩粉嫩一区二区三区| 亚洲精品一区二区三区99| 欧美电视剧在线观看完整版| 日韩视频免费直播| 久久久久久久精| 国产清纯白嫩初高生在线观看91| 久久免费的精品国产v∧| 中文字幕的久久| 亚洲色图视频免费播放| 亚洲狠狠爱一区二区三区| 午夜精品久久久久久久99樱桃| 亚洲 欧美综合在线网络| 裸体健美xxxx欧美裸体表演| 国产一区二区毛片| av在线播放成人| 欧美日韩在线观看一区二区| 在线91免费看| 久久久蜜桃精品| 中文字幕一区二区三区四区| 亚洲男人天堂av网| 日韩高清在线电影| 国产乱理伦片在线观看夜一区| 成人在线视频一区| 欧美在线视频你懂得| 91精品国产手机| 日本一区二区三区高清不卡| 亚洲美女在线国产| 麻豆传媒一区二区三区| 不卡的看片网站| 在线91免费看| 综合中文字幕亚洲| 日本人妖一区二区| 成人app软件下载大全免费| 欧美日韩成人一区二区| 久久精品视频在线免费观看| 亚洲曰韩产成在线| 国产精品一区专区| 欧美日韩中文字幕一区二区| 久久久综合视频| 亚洲成a人在线观看| 国产精品中文字幕日韩精品| 欧美又粗又大又爽| 国产欧美久久久精品影院| 亚洲成av人片在www色猫咪| 国产美女娇喘av呻吟久久| 欧美中文字幕久久| 国产精品第一页第二页第三页| 爽好多水快深点欧美视频| 成年人午夜久久久| 精品播放一区二区| 日韩av中文字幕一区二区三区| 99精品在线免费| 国产日韩精品一区二区浪潮av| 午夜精品久久久久久久蜜桃app| 成人午夜视频免费看| 日韩一区二区在线看| 洋洋成人永久网站入口| 成人激情图片网| 久久亚洲二区三区| av在线一区二区三区| 精品国产百合女同互慰| 亚洲18影院在线观看| 色悠悠久久综合| 国产精品麻豆网站| 丰满少妇久久久久久久| 精品91自产拍在线观看一区| 日本一道高清亚洲日美韩| 欧美日韩亚洲综合在线| 亚洲精品成人悠悠色影视| 成人国产精品免费观看动漫| 久久久亚洲精品石原莉奈| 久久国产尿小便嘘嘘尿| 欧美一区二区三区在线看| 亚洲午夜在线视频| 欧美日韩久久久| 午夜国产精品一区| 精品国产髙清在线看国产毛片| 久久精品国产精品亚洲红杏| 日韩视频一区在线观看| 免费观看一级特黄欧美大片|