彙編 介面簡單非同步查詢方式與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...