- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 从实模式到保护模式(一、二)
8086处理器内部有8个16位的通用寄存器,分别被命名为AX、BX、CX、DX、SI、DI、BP、SP。“通用”的意思是,它们之中的大部分都可以根据需要用于多种目的。 段机制解决的问题: 我们在指令中使用了绝对内存地址(物理地址),这样的程序是无法重定位的。为了让你写的程序在卖给别人之后,可以在内存中的任何地方正确执行,就只能在编写程序的时候使用相对地址或者逻辑地址了,而不能使
2013-10-30 10:15:51 811
原创 一站式编程笔记(17,18,19)
第17章: 汇编器把文本文件转换成目标文件.o;目标文件由若干个Section组成,我们在汇编程序中声明的.section会成为目标文件中的Section 然后链接器把目标文件的Section合并成几个Segment,生成可执行文件。 最后加载器根据可执行文件的Segment信息加载运行这个程序。 第18章: 函数调用解析: 在进入main()中,在调用的函数的时候,先把局部
2013-10-29 22:32:50 672
转载 linux栈帧详解
首先应该明白,栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(地址地)。下图为典型的存取器安排,观察栈在其中的位置 入栈操作:push eax; 等价于 esp=esp-4,eax->[esp];如下图 出栈操作:pop eax; 等价于 [es
2013-10-29 21:59:08 1224
原创 第16章
段错误的解释: 用户访问一个虚拟内存,经过MMU检查之后发现没有权限; MMU产生一个异常,使CPU从用户模式到特权模式,然后执行内核中相应的内核处理; 内核把这个异常解释为段错误,终止引发进程。 操作系统配合MMU去访问内存: 虚拟内存映射到哪个物理内存其实是通过页表来描述的,而页表是存放在物理内存中的; 操作系统在初始化数据的时候,会执
2013-10-29 09:07:03 572
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人