
- Parrot 教程
- Parrot - 主頁
- Parrot - 概述
- Parrot - 安裝
- Parrot - 說明
- Parrot - 垃圾回收
- Parrot - 資料型別
- Parrot - 暫存器
- Parrot - 操作
- Parrot - 分支
- Parrot 示例
- Parrot - 示例
- Parrot 資源
- Parrot - 快速指南
- Parrot - 有用資源
Parrot - 暫存器
當前 Perl 5 虛擬機器是堆疊式虛擬機器。它透過將值放在堆疊上,在操作之間傳遞它們。操作將值載入到堆疊上,執行它們需要做的操作並將結果放回堆疊。這很容易操作,但是很慢。
要將兩個數字相加,你需要執行三個堆疊推送和兩個堆疊彈出。更糟糕的是,堆疊必須在執行時增長,這意味著恰好在你不希望分配記憶體時分配記憶體。
因此,Parrot 將打破虛擬機器的既有傳統,使用暫存器架構,更類似於實際硬體 CPU 的架構。這有另一個優點。我們可以使用有關如何為基於暫存器的 CPU 編寫編譯器和最佳化器的所有現有參考文獻,以用於我們的軟體 CPU!
Parrot 為每種型別提供了專業暫存器:32 個 IV 暫存器、32 個 NV 暫存器、32 個字串暫存器和 32 個 PMC 暫存器。在 Parrot 彙編程式中,它們分別被命名為 I1...I32、N1...N32、S1...S32、P1...P32。
現在讓我們來看一些彙編程式。我們可以使用 set 運算子設定這些暫存器
set I1, 10 set N1, 3.1415 set S1, "Hello, Parrot"
所有 Parrot 操作都具有相同的格式:運算子的名稱、目標暫存器,然後是運算元。
廣告