x86的汇编
Nasm
Move a b 将b寄存器的值拷贝到a寄存器
80386有16个寄存器
1 通用寄存器
2 段寄存器
3 状态和质指令寄存器
在任何时候cpu能够访问6个段
段寄存器分别是CS DS ESFS GS SS
CS code segment 代码段,当发生call指令时就自动进行转换
SS stack segment堆栈段,能够显示调用,用户可以动态创建堆栈
EBP ESP ESS在使用中的具体关系?
段寄存器具有和对应的指令有默认的关系,但是可以通过明确指定改变这种关系,除了ES CS SS
异常来自自身的程序的运行
中断来自cpu外部的中断信号
内存管理,内存逻辑地址翻译为物理地址,经过以下几步:
1 段地址翻译,将逻辑地址转化为线性地址
2 分页翻译,将线性地址翻译为物理地址
在32位页地址上,page dir 有1k条记录,占有4kB,也就是一页。每一个pagedir的记录会对应1k个pagetable,1k条page,对应会占有4kB,也就是一页。因此总共会占有1025页,也就是占有内存4k*1025B
Call gate interupt gate trap gate 分别代表 systemcall interupt exception
因为程序对于分页是透明的,也就是程序看到的内存总是存在的,实际上可能是只是一个页表目录和页表,因此存在虚拟内存大于实际内存的情况