CALL 做什么
本条的指令集(每条是一个元组): PUSH 值 把一个常量压栈 LOAD 名 把变量的值压栈 DEFINE 名 弹栈、在当前层登记 ST
帧是什么
本条的指令集(每条是一个元组): PUSH 值 把一个常量压栈 LOAD 名 把变量的值压栈 DEFINE 名 弹栈、在当前层登记 ST
补全:数栈的最大深度
(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_p
补全:跳转和作用域
(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_p
补全:BIN 和 PRINT
(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_p
栈每一步的样子
(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_p
先看清单
格子亮一个,筒里就叠一块或弹一块 压、压、压、合、合、取走 (每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_st
块作用域怎么在 VM 里做
本条的指令集(每条是一个元组): PUSH 值 把一个常量压栈 LOAD 名 把变量的值压栈 DEFINE 名 弹栈、在当前层登记 ST
指令要不要带操作数放在哪
BIN + 这条指令没有写「加谁和谁」。它能工作是因为【0】。
VM 的主循环
格子亮一个,筒里就叠一块或弹一块 压、压、压、合、合、取走 本条的指令集(每条是一个元组): PUSH 值 把一个常量压栈 LOAD 名 把变量的值压栈 DE