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

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

?? spi.asm

?? bios開發(fā)培訓(xùn)涉及例子。可以給大家參考。請在dos下運行。用masm6.0編譯。
?? ASM
字號:



PRINTSTR    MACRO X
        push    dx
        push    ax
	LEA	DX,X
	MOV	AH,09H
	INT	21H
	pop     ax
	pop     dx
ENDM


.model small
.586
.stack  100
.stack
.data
                SPIBAR          dd      0
                bit2            equ     04h
                bit0            equ     01h
                err1            db      'There is an error!$'
                enters          db      10,13,'$'
                space1          db      ' $'
                data1           db      4096 dup(0)
.code

.startup	
                push    es
                xor     ax,ax
                mov     es,ax
                                
                call    Get_RCRB
                add     eax,3020h
                mov     SPIBAR,eax
                
                mov     edx,0ffff0000h          ;address
                mov     si,offset data1
                call    read_sector
                
                mov     si,offset data1
                mov     cx,100h
show1:          mov     al,[si]
                call    show_al
                printstr        space1
                inc     si
                loop    show1
                
                mov     eax,spibar
                call    Init_SPI_Erase
                call    Set_BIOS_EN
                call    write_status
                call    read_status
                
                mov     ebx,spibar
                add     ebx,08h
                mov     al,es:[ebx]
                call    show_al
                and     al,00011100b
                cmp     al,0
                jne     error1

                call    set_sector_erase_com
                call    set_program_com
                                                  
                jmp     end1                
                


error1:         printstr        err1
                printstr        enters
	
end1:           pop     es
	
.exit



Get_RCRB                proc            ;output: eax

                mov     eax,8000f8f0h
                mov     dx,0cf8h
                out     dx,eax
                mov     dx,0cfch
                in      eax,dx
                and     eax,not bit0               
                ret

Get_RCRB                endp


Init_SPI_Read          proc            ;input:es = 00h, eax; 
                
                mov     ebx,eax
                add     ebx,58h
                mov     dword ptr es:[ebx],0ab0bh  ;opcode menu
                mov     ebx,eax
                add     ebx,56h
                mov     word ptr es:[ebx],02h    ;opcode type
                mov     ebx,eax
                add     ebx,54h          ;prefix opcode configuration register
                mov     word ptr es:[ebx],0006h
                ret
                
Init_SPI_Read          endp

;==========================================
;input: eax: spi address; si: memory start address; edx: sector address

read_sector             proc  
             
                push    edi             
                call    Init_SPI_Read
                and     edx,0fffff000h
                mov     cx,64
store:          
                mov     ebx,eax                         
                or      word ptr es:[ebx],bit2      ;clear cycle done
                
                add     ebx,04h
                mov     dword ptr es:[ebx],edx
                sub     ebx,02h
                mov     word ptr es:[ebx],7f06h
                
                mov     ebx,eax
@@:             mov     ax,word ptr es:[ebx]            ;finish??
                test    ax,bit2
                jz      @B

                push    cx      
                mov     ebx,spibar
                add     ebx,08h
                mov     cx,16
store1:         mov     edi,dword ptr es:[ebx]
                mov     [si],edi
                add     si,4
                add     ebx,4
                loop    store1
                pop     cx
                
                add     edx,64
                loop    store                                          
                pop     edi
                ret
read_sector             endp




Init_SPI_Erase          proc            ;input:es = 00h, eax; 
                
                mov     ebx,eax
                add     ebx,58h
                mov     dword ptr es:[ebx],0a1010506h  ;opcode menu
                add     ebx,04h
                mov     dword ptr es:[ebx],02d7f1h
                mov     ebx,eax
                add     ebx,56h
                mov     word ptr es:[ebx],3d11h    ;opcode type
                mov     ebx,eax
                add     ebx,54h          ;prefix opcode configuration register
                mov     word ptr es:[ebx],0006h
                ret
                
Init_SPI_Erase          endp

Set_BIOS_EN     proc 
        
                mov     eax,8000f8dch
                mov     dx,0cf8h
                out     dx,eax
                mov     dx,0cfch
                in      al,dx
                or      al,01h
                out     dx,al
                ret
        
Set_BIOS_EN     endp     

write_status    proc

                mov     ebx,spibar
                add     ebx,00h         
                or      word ptr es:[ebx],bit2      ;clear cycle done
                add     ebx,08h
                mov     byte ptr es:[ebx],02h
                mov     ebx,spibar
                add     ebx,02h                 ;control configuration
                mov     word ptr es:[ebx],4026h         ;
                
                mov     ebx,spibar
@@:             mov     ax,word ptr es:[ebx]            ;finish??
                test    ax,bit2
                jz      @B
                
                ret
write_status    endp

                
read_status     proc
                
                ;read spi device status
                mov     ebx,spibar
                or      word ptr es:[ebx],bit2      ;clear cycle done
                add     ebx,02h
                mov     word ptr es:[ebx],4016h
                
                mov     ebx,spibar
@@:             mov     ax,word ptr es:[ebx]            ;finish??
                test    ax,bit2
                jz      @B
                ret
read_status     endp

set_sector_erase_com           proc
                
        ;;==========   set erase command
                mov     ebx,spibar
                or      word ptr es:[ebx],bit2      ;clear cycle done
                mov     ebx,spibar
                add     ebx,04h
                mov     dword ptr es:[ebx],0ff0000h
                mov     ebx,spibar
                add     ebx,02h
                mov     word ptr es:[ebx],56h
                
                mov     ebx,spibar
@@:             mov     ax,word ptr es:[ebx]            ;finish??
                test    ax,bit2
                jz      @B
                ret
set_sector_erase_com           endp     

set_program_com         proc                       
        ;;==========  set program command
                mov     ebx,spibar
                add     ebx,04h
                mov     dword ptr es:[ebx],0ff0000h       ;address
                add     ebx,04h
                mov     dword ptr es:[ebx],'cniV'       ;data0
                add     ebx,04h
                mov     dword ptr es:[ebx],'_tne'       ;data1
                add     ebx,04h
                mov     dword ptr es:[ebx],'uW'       ;data2
                               
                mov     ebx,spibar
                add     ebx,02h
                mov     word ptr es:[ebx],4b66h
                
                mov     ebx,spibar
@@:             mov     ax,word ptr es:[ebx]            ;finish??
                test    ax,bit2
                jz      @B  
                ret              
set_program_com         endp    
	
show_al         proc    far     public

                push    ax
                push    dx
                mov     dh,al
                and     al,0f0h
                shr     al,4
                add     al,30h
                cmp     al,3ah
                jb      doing
                add     al,7
doing:          mov     dl,al
                mov     ah,2
                int     21h                                   
	
	        mov     al,dh
                and     al,0fh
                add     al,30h
                cmp     al,3ah
                jb      doing1
                add     al,7
doing1:         mov     dl,al
                mov     ah,2
                int     21h  	
                pop     dx
                pop     ax
                ret
show_al		endp              
                
end
	

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频123区在线观看| 性做久久久久久久久| 日韩一级二级三级| 欧美日韩国产综合一区二区| 91视频在线观看| 不卡免费追剧大全电视剧网站| 国内精品视频一区二区三区八戒| 日本成人在线看| 秋霞午夜av一区二区三区| 偷拍一区二区三区| 免费av成人在线| 精品一区二区久久| 国产成人免费在线观看不卡| 国产成人福利片| 91亚洲精品久久久蜜桃| 在线观看免费视频综合| 欧美色偷偷大香| 91麻豆精品久久久久蜜臀| 日韩欧美一二区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久精品噜噜噜成人av农村| 久久国产精品99久久久久久老狼| 国产精品一区免费在线观看| 丁香婷婷综合网| 欧美在线观看禁18| 欧美一区二区播放| 亚洲欧洲99久久| 亚洲国产成人高清精品| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品毛片无遮挡高清| 亚洲丝袜精品丝袜在线| 亚洲成av人片| 国产成人啪午夜精品网站男同| 91在线观看下载| 欧美日韩中文精品| 青青青伊人色综合久久| 欧美成人bangbros| 成人福利视频网站| 一区二区高清免费观看影视大全| 欧美私模裸体表演在线观看| 蜜桃久久久久久久| 欧美丝袜第三区| 亚洲国产成人va在线观看天堂| 免费三级欧美电影| 色婷婷一区二区三区四区| 日韩女优av电影| 国产精品国产三级国产有无不卡| 国内精品国产三级国产a久久| 亚洲国产精品欧美一二99| 国产精品亚洲人在线观看| 欧美日韩在线观看一区二区 | 一本大道久久精品懂色aⅴ| 欧美一区二区三区婷婷月色| 亚洲欧美在线视频| 韩国av一区二区三区四区| 欧美乱妇一区二区三区不卡视频| 中文字幕欧美日本乱码一线二线| 日本不卡在线视频| 欧美日韩中文字幕一区二区| 国产精品国产三级国产aⅴ中文 | 一级特黄大欧美久久久| 国产精品影视在线| 欧美本精品男人aⅴ天堂| 亚洲电影欧美电影有声小说| 99久久精品情趣| 欧美激情在线观看视频免费| 国产自产视频一区二区三区| 日韩精品一区在线| 日韩成人一级大片| 欧美绝品在线观看成人午夜影视| 亚洲最色的网站| 欧洲日韩一区二区三区| 亚洲欧美区自拍先锋| 91色乱码一区二区三区| 国产精品久久久久久久午夜片| 国产91在线观看丝袜| 国产午夜精品理论片a级大结局| 免费av成人在线| 精品国产乱码久久久久久闺蜜| 奇米影视一区二区三区小说| 717成人午夜免费福利电影| 亚洲777理论| 777精品伊人久久久久大香线蕉| 日韩国产精品91| 欧美一二三四在线| 精品在线视频一区| 国产女人水真多18毛片18精品视频| 国产一区二区成人久久免费影院| 久久亚洲精华国产精华液 | 亚洲第一成年网| 日韩欧美国产一区在线观看| 老司机精品视频导航| 久久人人爽人人爽| www.久久精品| 亚洲自拍与偷拍| 日韩亚洲欧美在线| 国产福利一区二区三区| 中文字幕一区二区三区不卡| a在线播放不卡| 亚洲一区免费观看| 日韩欧美激情一区| 不卡大黄网站免费看| 亚洲成精国产精品女| 欧美成人激情免费网| 国产91丝袜在线18| 香蕉久久夜色精品国产使用方法| 欧美一级二级在线观看| 成人午夜免费电影| 日本成人在线不卡视频| 欧美国产成人在线| 欧美日韩精品三区| 国产成人丝袜美腿| 石原莉奈在线亚洲二区| 国产欧美一区二区精品婷婷| 欧美日韩中文字幕一区| 国产成都精品91一区二区三| 亚洲影院久久精品| 久久精品免费在线观看| 欧美日韩一区二区三区免费看| 精品在线亚洲视频| 亚洲va韩国va欧美va精品 | 色综合亚洲欧洲| 久久久久国色av免费看影院| 91香蕉视频黄| 国产麻豆一精品一av一免费 | 全国精品久久少妇| 伊人性伊人情综合网| 久久精品视频免费| 91精品国产91综合久久蜜臀| av高清久久久| 国产高清在线精品| 日产欧产美韩系列久久99| 自拍av一区二区三区| 久久久不卡影院| 日韩亚洲欧美在线观看| 精品婷婷伊人一区三区三| 99国产精品一区| 国产91高潮流白浆在线麻豆| 蜜臀va亚洲va欧美va天堂| 亚洲成人一区二区| 亚洲欧美另类在线| 国产精品久久久爽爽爽麻豆色哟哟| 日韩欧美资源站| 欧美精品少妇一区二区三区| 欧美午夜电影在线播放| 91啦中文在线观看| 99精品热视频| 99免费精品视频| 成人综合在线观看| 国产成人啪免费观看软件| 国产乱码精品一区二区三区av | 国产精品国产a| 中文字幕av在线一区二区三区| 欧美成人女星排名| 精品成人佐山爱一区二区| 日韩欧美美女一区二区三区| 欧美精品粉嫩高潮一区二区| 欧美日韩一级二级三级| 91麻豆6部合集magnet| 成人av在线影院| 91视频一区二区| 一区二区三区四区激情| 亚洲美女偷拍久久| 激情综合色综合久久综合| 国产激情一区二区三区四区| 成人丝袜高跟foot| 欧美猛男男办公室激情| 国产午夜久久久久| 日本欧美韩国一区三区| 懂色av噜噜一区二区三区av| 欧美色视频在线观看| 精品国产凹凸成av人导航| 亚洲国产精品精华液2区45| 911精品国产一区二区在线| 在线不卡一区二区| 日韩午夜在线影院| 久久久久亚洲蜜桃| 中文字幕一区二区在线播放| 一本大道av一区二区在线播放| 免费精品视频最新在线| 亚洲一二三专区| 久久爱www久久做| 国产999精品久久久久久绿帽| 91社区在线播放| 日韩视频在线一区二区| 国产精品久久久久久久浪潮网站| 亚洲精品国产视频| 蓝色福利精品导航| 色国产精品一区在线观看| 欧美肥妇bbw| 综合电影一区二区三区| 日韩精品一区第一页| jlzzjlzz国产精品久久| 91精品久久久久久久久99蜜臂| 亚洲国产经典视频| 日日夜夜免费精品| 91女厕偷拍女厕偷拍高清| 欧美一级理论性理论a| 中文字幕精品综合| 麻豆91免费看|