彙編 介面簡單非同步查詢方式與cpu通訊

2021-06-15 21:18:06 字數 921 閱讀 5802

彙編 介面簡單非同步查詢方式與cpu通訊

有2個輸入裝置 1號裝置資料埠位址為0626h

2號裝置資料埠位址為0628h

緩衝區首位址分別為buffer1,buffer2

狀態埠位址為 0624h   狀態資訊為

當狀態位d0=1時 為1號裝置輸入字元

當狀態位d1=1時 為1號裝置輸入字元

當狀態位d3=1時 為1號裝置輸入結束

當狀態位d4=1時 為1號裝置輸入結束

流程: 檢測狀態d0為1時 轉入迴圈檢測1號裝置直到輸入結束送入1號緩衝buffer1 重新開始檢測狀態

檢測狀態d1為1時 轉入迴圈檢測2號裝置直到輸入結束送入2號緩衝buffer2 重新開始檢測狀態

lea di,buffer1

lea si,buffer2

start: mov dx,0624h       //檢測初始狀態 決定流程

in  al,dx

test 01h

jz test2

loop1: in al,dx                //檢測1號裝置

test 08h

jz loop1

mov dx,0626h

in al,dx

mov [di],al                 //送入一號緩衝區

inc di

jmp start

test2: test 02h          //檢測2號裝置

jz start

loop2: in al,dx

test 10h

jz loop2

mov dx,0628h

in al,dx

mov [si],al              //送入二號緩衝區

inc si

jmp start 

WinForm 介面非同步更新資料 方式三

control 不能在建立它的 thread 之外被呼叫。但可以通過 invoke 來保證 control 執行緒安全。在跨執行緒更新的時候,control 會檢查 currentthread 是否為建立 control 的執行緒,並報錯 示例 如下 private void btnstart cl...

WinForm 介面非同步更新資料 方式三

control 不能在建立它的 thread 之外被呼叫。但可以通過 invoke 來保證 control 執行緒安全。在跨執行緒更新的時候,control 會檢查 currentthread 是否為建立 control 的執行緒,並報錯 示例 如下 private void btnstart cl...

WinForm 介面非同步更新資料 方式一

1 using system 2using system.collections.generic 3using system.componentmodel 4using system.data 5using system.drawing 6using system.linq 7using syste...