
编译原理
m_bkj
这个作者很懒,什么都没留下…
展开
-
文章标题
抛开JOS不谈,一个函数在调用时,肯定要压入参数给函数体传值,然后要压入函数结束后的下一条指令的地址,以便函数可以正确的返回,其次因为公用一个堆栈所以要压入BP也就是基址寄存器的值,和在函数体中使用到的寄存器的值,以便返回时可以恢复现场。但是这些值压入的顺序和规则目前还是不知道的,需要一些额外的资料。 esp的含义是“这个地址以下的空间是未被使用的堆栈控件”, ebp的含义是“这个地址以下至转载 2015-11-22 21:02:30 · 401 阅读 · 0 评论 -
yacc用法(未完成)
用 Yacc 编写语法如同 Lex 一样, 一个 Yacc 程序也用双百分号分为三段。 它们是:声明、语法规则和 C 代码。 我们将解析一个格式为 姓名 = 年龄 的文件作为例子,来说明语法规则。 我们假设文件有多个姓名和年龄,它们以空格分隔。 在看 Yacc 程序的每一段时,我们将为我们的例子编写一个语法文件。C 与 Yacc 的声明C 声明可能会定义动作中使用的 类型 和 变量,以及 宏。 还可转载 2015-11-25 01:04:32 · 800 阅读 · 0 评论