2013-02-23 100 views
0

那麼我的問題是,爲什麼我們要用xor ax,ax清除ax寄存器?我認爲,當用戶輸入變量A的字符,並且當用戶再次輸入變量B的字符時,這可能會覆蓋ax中的內容值,但它似乎不同。當我們要使用用戶輸入時,爲什麼我們必須清除ax註冊表?

這是在x86彙編中。

使用DOS,ASSEMBLER FOR 16位。 按與DOS中斷任何字符:

mov ah, 01h 
+1

我們在這裏說什麼'字符輸入'?直接從鍵盤數據緩衝區讀取? OS API? – LeleDumbo 2013-02-23 16:04:00

+1

沒有更多的上下文,這沒有任何意義。什麼OS?如何閱讀鍵盤?你使用OS API(哪個API調用?),BIOS調用(哪一個?)或自定義鍵盤處理程序或其他? – nrz 2013-02-23 16:05:19

+0

非常抱歉,我正在談論DOS,16 BITS ASSEMBLER,鍵盤上的任何字符。使用DOS中斷:mov ah,01h – 2013-02-23 16:07:05

回答

3

由於要發送的參數爲INT 16,

如果AH == 0則讀取鍵盤輸入在AH

如果AH == 1然後查詢鍵盤狀態/預覽鍵 等。

閱讀this

+0

嘿,謝謝!這很棒! – 2013-02-23 16:09:51

+0

你好歡快。 – ladan 2013-02-23 16:11:48

+1

爲了補充ladan的回答,「xor」被頻繁使用,因爲與「mov ax,0」相比,它節省了幾個時鐘週期,而與其他可讀性更強。 – Luis 2013-02-23 16:12:35

相關問題