sample.lua
local a = 8
c = 3
输入命令
luac -l -l sample.lua
main <sample.lua:0,0> (4 instructions, 16 bytes at 006D5948)
0+ params, 2 slots, 0 upvalues, 1 local, 3 constants, 0 functions
1 [1] LOADK 0 -1 ; 8
2 [2] LOADK 1 -3 ; 3
3 [2] SETGLOBAL 1 -2 ; c
4 [2] RETURN 0 1
constants (3) for 006D5948:
1 8
2 "c"
3 3
locals (1) for 006D5948:
0 a 2 4
upvalues (0) for 006D5948:
查了很久,没有找到相关资料,自有从源码入手了,luac.c源码入手了,下面把结果说出来
1 [1] LOADK 0 -1 ; 8
1表示第一条指令
[1]表示对应源文件行号
LOADK 0 -1 表示操作码和操作数 ,把常量表中第一个常量赋值给寄存器0
分号后面的表示注释,通常为为字符串或者数字
constants (3) for 006D5948: 表示3个常量
1 表示第一个常量序号,从1开始 8 代表值
locals (1) for 006D5948: 表示1个局部变量
0 局部变量的序号 从零开始, a局部变量名 2 4 表示作用域 从第二条指令到第四条指令
更多lua指令可参考
http://blog.csdn.net/yuanlin2008/article/details/8423951