gpt4 book ai didi

java - IJVM 练习,交换 4 个元素堆栈中的 2 个元素

转载 作者:太空宇宙 更新时间:2023-11-04 13:02:59 24 4
gpt4 key购买 nike

我正在尝试创建一个微编程函数,给定堆栈中的 4 个值,交换第三个和第四个值。我将其称为“mswap”,这是到目前为止的微代码:

mswap1 SP = SP - 1
mswap2 SP = SP - 1<br/>
mswap3 MAR = SP - 1<br/>
mswap4 rd
mswap5 MAR = H<br/>
mswap6 wr
mswap7 MAR = SP<br/>
mswap8 rd
mswap9 MAR = SP - 1
mswap10 wr<br/>
mswap11 MAR = H
mswap12 rd
mswap13 MAR = SP
mswap14 wr
mswap15 SP = SP + 1
mswap16 SP = SP + 1; goto Main1

这是一个示例程序:

.main开始:BIPUSH 0x39 比推 0x30 比普什 0x36 比推 0x35 移动应用程序 出去 出去 出去 出去 停.end-main

它应该给出 5690 的输出可悲的事实,输出只有 56这是我“错过”了两个桩元素..这是由于过度使用 SP = SP -1 造成的吗?当编写类似的函数来交换第二个和第三个元素时,它工作得很好

最佳答案

mswap5正在使用H,但H尚未设置。您的意思是在之前的指令中设置它吗?

只需要两次读取和两次写入。

无需更改 SP 即可访问堆栈。使用H,那么你就不必在程序结束时调整SP。

关于java - IJVM 练习,交换 4 个元素堆栈中的 2 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34771940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com