386汇编基础知识笔记

寄存器
1.8个通用寄存器都可用于基址变址寻址,当做指针寄存器使用,这是不同于8086的(8086只能是bx、si、di、bp)
2.六个段寄存器:cs、ds、ss、es、fs、gs
3.32位标志寄存器eflags
新增4个标志:
(1)io特权标志iopl:2位宽,指定了执行i/o指令所需的特权级,如果当前特权级小于等于该值,则i/o=指令可被执行,否则引发保护异常。
(2)位14。嵌套任务标志nt:控制iret的执行
nt=0,常规返回(pop eflags 、pop eip、pop cs)
nt=1,通过任务转换实现中断返回(不太理解。。。)
(3)位16。重启动标志rf:控制是否接受调试故障。
rf=0    接受
rf=1    忽略
成功执行每一条指令后,cpu对rf位清0.接收到一个非调试性故障时置1.
(4)位17。虚拟8086方式标志vm:
vm=1:在虚拟8086方式下工作
vm=0:在保护模式下工作

存储器寻址:
1.保护模式下,段寄存器存储段选择子,间接指示段基地址
2.默认段寄存器的选择只受基址寄存器影响。
3.如果某一存储器操作数的地址是该操作数尺寸(所占字节数)的倍数,那么称该操作数对齐。访问对齐的数较快。