Page96中 LOADNIL 指令三个操作数的作用
balusch opened this issue · 1 comments
balusch commented
书上这样讲 LOADNIL
指令的三个操作数的作用:
寄存器的起始索引由操作数 A 指定,寄存器数量则由操作数 B 指定,操作数 C 并没有用。
但是在书上举的例子中:
$ luac -l -
local a,b,c,d,e
^D
main <stdin:0,0> (2 instructions at 0x7fca03500070)
0+ params, 5 slots, 1 upvalue, 5 locals, 0 constants, 0 functions
1 [1] LOADNIL 0 4
2 [1] RETURN 0 1
里面 B 操作数的值为4,但是其实是给5个值(a,b,c,d,e
)赋值nil
了
所以我觉得"寄存器的数量由操作数 B 指定"这句话稍微有点歧义。
zxh0 commented
抱歉了,表述上的确是有点不太精确,B操作数里放的实际是“寄存器数量减去一”。