1
因此,我的目標是編寫一個子程序,當被調用時掛起,直到用戶輸入一個由<return>
終止的字符串,然後它返回(可能通過將其寫入地址由用戶指定)。如何從DCPU16上的鍵盤獲得最好的字符
我的問題在於我如何最好地從鍵盤上獲得單個字符。正如我所看到的,有3種方法:
偵聽來自鍵盤的中斷並獲取響應這些字符的字符。這意味着由
getline
執行的邏輯將在中斷處理程序中,這似乎會導致一些問題。即如何回覆getline
以迴應按下<return>
鍵?在中斷處理程序中,您沒有方便的返回地址。同樣,在中斷處理程序中放置太多特定邏輯的模式似乎是......錯誤......即使我在低級編碼方面經驗不足。只需按住鍵盤上的按鍵即可。
通過加載所有壓入循環緩衝區(可能長度爲1)的字符,用中斷處理程序實現舊的1.1行爲。
對這些選項的更多觀點會很好。
我真的很感謝你的回答,但我恐怕我不完全理解它。我已經寫下了一些在閱讀時突然出現在我腦海中的問題,但是在這裏太久了。我已在此發佈:http://pastebin.com/Nwq5qRSU 如果您喜歡,歡迎您詳細闡述一些要點。 –
@andvin如果這個答案的作品,你應該真的接受答案,並研究它爲什麼有效。這對我來說很清楚它的功能,也許你應該開始一個更基本的dcpu-16彙編0x10c論壇和0x010c wiki有assemby教程。 – booyaa
@booyaa我確實瞭解裝配的基本知識,以及說明的用途。我也有能力編寫一個工作中的getline函數。我遇到麻煩的是如何最好地做到這一點。從棘輪怪胎的實施工作的非平凡方式來看,我想有一些考慮因素進入了設計階段。我真的很感謝這些考慮的一些解釋。 我的問題是,我不知道如何最好地利用中斷。中斷處理程序應該做什麼以及爲什麼?像這樣的事情是AFAIK沒有在典型的DCPU教程中解釋。 –