lua虚拟机字节码修改_LUA虚拟机的字节码怎么看?

'A' : 8 bits

'B' : 9 bits

'C' : 9 bits

'Ax' : 26 bits ('A', 'B', and 'C' together)

'Bx' : 18 bits ('B' and 'C' together)

'sBx' : signed Bx

比如这段:

function y(...) print(...) end

1 [1] GETTABUP 0 0 -1 ; _ENV "print"

2 [1] VARARG 1 0 ; VARARG will set L->top

3 [1] CALL 0 0 1 ; B=0 so L->top set by previous instruction

4 [1] RETURN 0 1

每条指令后面的数字(2个或者3个)表示什么意思?

E:\Project\ZhScheme\lua>luac -l luac.out

main <0> (6 instructions, 24 bytes at 004784F8)0>

0+ params, 2 slots, 0 upvalues, 0 locals, 4 constants, 0 functions

1 [1] LOADK 0 -2 ; 18

2 [1] SETGLOBAL 0 -1 ; a

3 [2] GETGLOBAL 0 -3 ; print

4 [2] LOADK 1 -4 ; "hello world"

5 [2] CALL 0 2 1

6 [2] RETURN 0 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值