我一直在搜索整個手冊,但找不到一個指令指針。我需要這個用於我正在寫的SPU程序。也許它有不同的名字?任何人都可以告訴我如何訪問要執行的指令的地址?在此先感謝您的幫助。 更新:顯然它被稱爲程序計數器,但我如何從我的SPU程序中訪問它?SPU指令指針
SPU指令指針
回答
如果你只是想要得到的指令指針,你可以做到這一點在裝配:
brsl r<n>, .+4
這會將下一條指令的地址到寄存器r<n>
。
好像你可以通過執行spe_context_run
操作獲得下一個指令:
int spe_context_run(spe_context_ptr_t spe, unsigned int *entry, unsigned int runflags, void *argp, void *envp, spe_stop_info_t *stopinfo)
entry
輸入:入口點,也就是在SPU 的初始值指令指針,SPE程序應該開始執行。 如果條目的值爲SPE_DEFAULT_ENTRY,則從加載的SPE映像獲取 SPU主程序的入口點。這通常是初始化函數crt0 的本地存儲地址(參見Cell寬帶引擎編程手冊,對象,可執行文件, 和SPE Loading)。
輸出:當SPU停止執行 時SPU指令指針,即執行的下一條指令 的本地存儲地址。
例如,可以使用此參數來允許SPE程序 「暫停」並請求PPE線程執行一些操作,例如執行I/O操作的 。在此PPE方行動已完成 後,您可以繼續SPE程序再次調用spe_context_run 而不更改條目。
感謝您的回答,但我希望在SPU上執行此操作,而spe_context_run運行上下文並位於PPU上。 – user1294986
啊,所以你正在運行*一個SPU程序,並且想獲得指令指針?請更新您的問題並提及它。 – nneonneo
是的。對不起,不清楚。有沒有辦法?從我讀到的指令中,SPU必須被禁用才能閱讀SPU_NPC,但我想在我的SPU程序中閱讀它。 – user1294986
- 1. GDB指令指針
- 2. 使用指針:指針指針指針
- 3. 指針指針
- 4. 指針指針?
- 5. 指針指針
- 6. 指針指針
- 7. 將單元處理器上的SPU直接指向SPU DMA請求?
- 8. 指針指向指針
- 9. 指令指針與程序計數器?
- 10. 「調試當前指令指針」setAdapter
- 11. 返回指令堆棧中的指針
- 12. 指針的指針
- 13. 指針指針(C++)
- 14. 指針的指針
- 15. F指針指針#
- 16. 指針的指針
- 17. 指針內指針的指針
- 18. 指針vs指針指針C
- 19. 指針的指針的指針
- 20. 更改指針指針指針引用
- 21. 指針和指針數組指針
- 22. 指針與指針的指針
- 23. 共享指針:指針的指針
- 24. 指針指針(* argv [])的指針運算?
- 25. 指向指針的指針和指向數組的指針
- 26. C++強制指針指向指向基指向指針的指針
- 27. 內存分配指針指向數組和指針指針
- 28. 指針和數組[指針int和指向char的指針]
- 29. 指針不指向指針時發生指針崩潰
- 30. 不同結構類型指針指向指針結構指針
在大多數體系結構中,它被稱爲程序計數器(PC) - 英特爾在這方面的術語中有點不符合標準。 –
非常感謝!這真是令人尷尬,但我只在x86上完成了彙編代碼。 但我還有一個問題:是否有可能讀取它而沒有停止SPU? – user1294986