以下是一段程式,乃在螢幕的畫面上可用鍵盤方向鍵任意方向的移動游標,同時也可在游標上輸入文字。因為程式有點長所以我放在這網路空間麻煩大大下載!
可先RUN 一次更清楚程式功能
http://www.badongo.com/file/5039986
其中有一段程式:
;if function key
CMP AL,0 ;AL = 0?
JNE ELSE_
這是判斷keyin的鍵盤字元是否為NULL?但到底那個按鍵是NULL?每個按鍵都有它的ASCII碼,而這段程式乃指不只1個按鍵屬NULL空字元,我知NULL將它印出在螢幕的話是顯示空白字元,但這段判斷的程式讓我很疑惑! 請告訴我它的意義用處?及含蓋的ASCII碼範圍,但是明明每個按鍵都有自已的ASCII碼 怎又會被它含蓋呢?
2007-11-07 10:03:05 · 1 個解答 · 發問者 eric 7 in 電腦與網際網路 ➔ 軟體
其中有一段程式:
;if function key
CMP AL,0 ;AL = 0?
JNE ELSE_
;如果 AL=0 ,則是 Function key,並執行 DO_FUNCTION
;Function key 是由 AH 執來判段.
;諸如 F1-F12 ,還有PGUP,PGDN.....等等;
;但本程式只判斷 上下左右鍵,而目的是移動螢幕游標位置.
DO_FUNCTION PROC
; operates the arrow keys
; input: AH scan code
; output: none
這是判斷keyin的鍵盤字元是否為NULL?但到底那個按鍵是NULL?每個按鍵都有它的ASCII碼,而這段程式乃指不只1個按鍵屬NULL空字元,我知NULL將它印出在螢幕的話是顯示空白字元,但這段判斷的程式讓我很疑惑! 請告訴我它的意義用處?及含蓋的ASCII碼範圍,但是明明每個按鍵都有自已的ASCII碼 怎又會被它含蓋呢?
:不一定每個按鍵都有其 ASCII code 即AL 的對應值,但卻一定有其
scan code. 即是鍵盤掃描碼. 有些鍵,
但建議用 Fucntion code 來檢查(如本程式). 因早期各家出的鍵盤其掃描碼並非統一.
2007-11-20 08:29:19 補充:
我想請問一下是不是沒有ASCII碼的按鍵系統都自動設定為0 ?
因為我用CMP 判斷我輸入的鍵盤是不是ASCII碼 0H,發現那些沒有ASCII碼的function key及shift key全都是,所以NULL指那些沒有ASCII碼的按鍵,因為系統都設定為0H。
是的,服務程式如此寫是方便使用者得到資訊key in 資料非 ASCII code key.
2007-11-07 12:17:38 · answer #1 · answered by carey 4 · 0⤊ 0⤋