10、子程序与蒙特卡罗方法:编程中的实用技巧

子程序与蒙特卡罗方法:编程中的实用技巧

1. 子程序基础

1.1 基于分支控制的局限性

传统的基于分支的控制存在一个主要限制,即代码块执行后,控制会自动返回到一个固定且不可改变的点。与高级编程语言中的传统过程不同,无法设置一个可以从程序任意点运行并返回原位置的代码块。

1.2 子程序的引入

为了解决这个问题,需要更多信息、新的控制结构和操作。JVM 提供了 jsr (Jump to SubRoutine)指令(实际上有 jsr jsr w 两条指令,类似于 goto goto w )。当执行 jsr 指令时,控制会立即转移到字节码中存储偏移量的标签处。在此之前,机会计算 (PC + 3) 的值,即 jsr 指令之后的下一条指令的地址,并将其作为 32 位(4 字节)的量压入栈中,然后才将控制转移到标签处。

1.3 jsr 指令的机器语言

jsr 助记符对应一个字节( 0xA8 ),后面跟着一个 2 字节的偏移量,存储为有符号短整数。例如,假设内存位置 0x1000 - 0x1003 保存如下模式:
| 位置 | 字节值 | 解释 |
| ---- | ---- | ---- |
| 0x1000 | 0xA8 | js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值