- 博客(9)
- 收藏
- 关注
转载 yacc用法(未完成)
用 Yacc 编写语法如同 Lex 一样, 一个 Yacc 程序也用双百分号分为三段。 它们是:声明、语法规则和 C 代码。 我们将解析一个格式为 姓名 = 年龄 的文件作为例子,来说明语法规则。 我们假设文件有多个姓名和年龄,它们以空格分隔。 在看 Yacc 程序的每一段时,我们将为我们的例子编写一个语法文件。C 与 Yacc 的声明C 声明可能会定义动作中使用的 类型 和 变量,以及 宏。 还可
2015-11-25 01:04:32 755
转载 内存页面管理
本地找不到对应证书,所以可以通过关掉验证来解决这一问题,就是在git 命令前面加上: env GIT_SSL_NO_VERIFY=true 所以完整的命令是这样: env GIT_SSL_NO_VERIFY=true git pull 虽然在很多操作系统书讲到页式地址管理的时候总会说页面大小是可以根据系统的安排而调整的,一般是1KB的整数倍,如1KB,2KB,4KB或者8KB等。但
2015-11-25 00:46:45 597
转载 文章标题
抛开JOS不谈,一个函数在调用时,肯定要压入参数给函数体传值,然后要压入函数结束后的下一条指令的地址,以便函数可以正确的返回,其次因为公用一个堆栈所以要压入BP也就是基址寄存器的值,和在函数体中使用到的寄存器的值,以便返回时可以恢复现场。但是这些值压入的顺序和规则目前还是不知道的,需要一些额外的资料。 esp的含义是“这个地址以下的空间是未被使用的堆栈控件”, ebp的含义是“这个地址以下至
2015-11-22 21:02:30 382
转载 文章标题
入kernel后从i386_init函数开始,首先做一些初始化工作,包括部分内存的清零,初始化显示器串口等(无非是判断一下地址使光标闪动正确的位置等),然后调用了cprintf,尝试将一个10进制的数字用8进制来表示,而这个函数是需要我们完成的。 进入cprintf函数(printf.c文件)后,首先是使用va_前缀的函数(也许是宏)来取出参数,这是标准的c语言可变长度参数的实现形式。这个函数其实
2015-11-22 17:23:15 341
转载 文章标题
文件跳转到了entry.S里面,这是kernel的入口。 kernel的代码段(text段)被加载到了0x100000的位置,也就是1MB的位置 值得注意的是kernel的VMA地址为0xf0100000,也就是内核“认为”自己是在一个高位内存里执行的,因此其中的符号,包括函数名、汇编里定义的符号,都会指向一个高位的地址(大于0xf0000000)的地址,所以到目前为止在entry.S里,只要调
2015-11-22 00:40:54 308
转载 文章标题
pointers.c的代码以及实现功能如下:#include<stdio.h>#include<stdlib.h>void f(void) { int a[4]; int*b = new int[16];//(int*)malloc(16);//分配长度为16bytes字节的内存块 int*c=0;int i; printf("1:a=%p,b=%p,c=%p\n
2015-11-22 00:03:38 292
转载 文章标题
objdump命令是Linux下的反汇编目标文件或者可执行文件的命令, 它还有其他作用,下面以ELF格式可执行文件test为例详细介绍: objdump -f test 显示test的文件头信息objdump -d test反汇编test中的需要执行指令的那些section objdump -D test 与-d类似,但反汇编test中的所有section objdump -h test
2015-11-21 23:03:52 257
翻译 文章标题
物理内存的0x000A0000 -0x00100000为VGA显示存储、BIOS ROM以及扩展ROM 物理内存的高端0xefffffff-0xffffffff往往被PCI设备的外设I/O所占据。 JOS 中的 Boot Loader Boot Loader的源程序是由一个叫做的boot.S的AT&T汇编程序与一个叫做main.c的C程序组成的。 boot.S主要是将处理器从实模式转换到3
2015-11-21 23:02:18 329
转载 转-LMA和VMA
一般体积LMA和VMA,多数情况下都是和ld,连接器有关。 在了解这两个名词的详细含义之前,有些基本知识和前提要说一下:【基础知识】1、从源代码到可执行的代码,一般要经过一下几个过程: 源代码编辑 -> 编译 -> 链接 ->装载 -> 执行2、编译 简单的说就是用编译工具,将你的源码变成可以执行的二进制文件,即目标文件,当然只是对应某一种硬件平台,比如x86,arm3、链接 就是将多个目标
2015-11-20 22:09:27 426
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人