- 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 操作都具有相同的格式:运算符的名称、目标寄存器,然后是操作数。
广告