我研究陷阱指令,但對我來說,它使得它與Java中的throws exception
一樣毫無意義並且看起來類似,或者它是類似的還是它有什麼作用?它只是說TRAP
指令總是產生一個異常,我爲什麼要這麼做?我沒有足夠的信息來了解我想要使用的原因和位置TRAP
。我爲什麼要使用TRAP指令?
回答
要理解這一點,您必須瞭解硬件和軟件中斷之間的差異。
硬件中斷: 爲了處理IO和硬件定時器等異步事件,CPU使用中斷。硬件中斷使CPU停止其當前執行,保存狀態(如寄存器等),並跳轉到中斷處理程序所在的預定義地址。處理程序完成其工作後,CPU通過恢復保存的狀態從停止的位置恢復執行。
軟件中斷又名陷阱又名例外: CPU支持特殊指令,允許軟件模擬中斷。當執行這樣的指令時,CPU將其視爲硬件中斷,即停止其正常執行流程,保存其狀態並跳轉到處理程序例程。這些「陷阱」被用來實現許多功能,如任務調度,虛擬內存,內存保護,調試.....
希望這會有所幫助。
忘記了問題的例外部分:一些編程錯誤(例如除以0)也被CPU視爲陷阱,並且經常被稱爲「異常」。
我研究了PDP-11,TRAP工作以及如何想與大家分享:
陷阱可以幫助您與
- 保存當前的寄存器(包括PC/PS )更新SP(堆棧指針)
- 將PC(下一個儀器地址)設置爲TRAP處理程序
- 將PS(狀態寄存器)設置爲TRAP sta土族
也可以參照這一形象,https://github-camo.global.ssl.fastly.net/3e636f86530380760fcc784c3178d40723d55a44/687474703a2f2f696b6172697368696e6a696576612e6769746875622e696f2f756e697856362d636f64652d616e616c797a652d6368732f696d616765732f50647031315f696e737472756374696f6e5f545241502e706e67(對不起,我需要10的聲譽上傳圖片...)(中國人的圖像中人物的意思是「堆棧」)
TRAP是提供處理器級別的上下文切換保護,這意味着TRAP可以保存寄存器,安全地切換到從其他代碼地址運行,並且可以切換回舊PC/PS保存在堆棧中。它就像一個函數調用,但不是例外。
在UnixV6,TRAP主要用於手柄hardward間隔,比如時鐘間隔(KW11-L),電源故障間隔等..
我不知道它是否能幫助在你的問題在FPGA,只是不理睬我,如果它不是...
謝謝。
- 1. 爲什麼我需要遮罩指令?
- 2. 爲什麼我不需要父指令的子指令?
- 3. 爲什麼我的指令不能使用ng-bind-html指令?
- 4. 我需要什麼'使用'指令用於WebSockets
- 5. 爲什麼我們需要定製指令中的BindToController
- 6. 爲什麼我必須要使用卷指令泊塢窗,構成
- 7. 爲什麼我只需要增加更改asm指令使用六編輯器
- 8. 爲什麼我需要Iterator接口,爲什麼要使用它?
- 9. 爲什麼指令ng-href需要{{}}而其他指令不需要?
- 10. 在shell中使用trap命令
- 11. 爲什麼我無法使用指令刪除元素
- 12. AngularJS指令操作需要範圍摘要,爲什麼?
- 13. 我爲什麼要用WinDbg?
- 14. 我爲什麼要用Drools?
- 15. 爲什麼編譯器要翻譯爲彙編使用間接跳轉指令?
- 16. 爲什麼我們要使用HttpContext.Current?
- 17. 爲什麼我們需要使用prompt.start()?
- 18. 我爲什麼要使用Spring Android?
- 19. 爲什麼我要使用靜態庫?
- 20. 爲什麼我不需要使用Adapter.notifyDataSetChanged()?
- 21. 我爲什麼要使用MVVM?
- 22. 我爲什麼要使用AWS RDS?
- 23. 我爲什麼要使用EMF?
- 24. 我爲什麼要使用glTranslate?
- 25. 我們爲什麼要使用NSOperationQueue?
- 26. 我爲什麼要使用POCO?
- 27. 爲什麼我們需要使用ExitWindowsEx
- 28. 爲什麼我需要使用Activator CreateInstance?
- 29. 爲什麼我要使用PHP框架
- 30. 我爲什麼要使用io_service :: work?
你不一定明確地使用一個。他們經常用於特殊目的:http://eli.thegreenplace。net/2011/01/27/how-debuggers-work-part-2-breakpoints/ – lurker
我不確定這是否與FPGA相關的問題,這是一個軟件問題,我認爲你應該從中移除FPGA標誌。 – FarhadA