首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >堆栈机与寄存器机示例

堆栈机与寄存器机示例
EN

Stack Overflow用户
提问于 2015-09-10 22:06:01
回答 1查看 800关注 0票数 4

我试图通过一个例子来找出堆栈机器和基于寄存器的机器之间的区别:

堆栈机器应该是这样的:

1+2*3:

代码语言:javascript
运行
复制
1.push 1 push 2 push 3
2.pop 3 pop 2 push 6
3.pop 6 pop 1
4.push 7

因此,我们需要很多运算来进行上面的计算。然而,在基于寄存器的机器中,我们没有任何推送或pop操作,但是指令需要有操作数的寄存器。

有些例子是这样的:

代码语言:javascript
运行
复制
R1(register) --> operand:1
R2 --> operand:2
R3 --> operand:3

寄存器VM中的等效操作将如何表示?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-10 23:31:52

在smali中,它是基于寄存器的dalvik字节码的汇编语言,它将类似于

代码语言:javascript
运行
复制
const v0, 2        # v0 = 2
const v1, 3        # v1 = 3
mul-int v0, v0, v1 # v0 = v0 * v1
                   # v0 is now 6
const v1, 1        # v1 = 1
add-int v0, v0, v1 # v0 = v0 + v1
                   # v0 is now 7
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32512390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档