![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
X86汇编
尽头2nxszn98
清空你的杯子,方可再行注满,成为虚空以求整全。
展开
-
X86保护模式(二)· 存储器的保护
修改段寄存器时的保护在保护模式下,修改段寄存器需要带入段选择子,此时会校验带入值的合法性,然后从全局描述符表GDT中找到相应的描述符并加载到描述符高速缓存器中,此时会校验描述符的完整性和正确性。在全局描述符表GDTR中,有GDT线性基地址和界限值两部分,选择子所选择的描述符必须在边界值以内,也就是索引号 * 8 + 7 <= 边界,如果选择子对应的描述符超出了界限值,处理器会响应一个异常中断13,并且不会改变段寄存器的内容。如果描述符S=1,便会校验type域,type域必须是有效的,比如000原创 2020-10-11 18:09:10 · 301 阅读 · 0 评论 -
指令的格式及操作尺寸
32位处理器的指令操作尺寸在32位处理器中,源操作数既可以是32位的,也可以是16位的,还可以是8位的,目的操作数同理,并且在实模式下,也可以用32位寄存器来访问内存,那么是不是说实模式下也可以访问全部4G字节内存呢?通常来讲,是不行的,因为32位处理器的描述符高速缓存中,除了有线性基地址,还有段界限,在实模式下计算机会将其预置为0xFFFF,也就是64KB,如果超过这个界限也会被处理器阻止,这样以保证程序在实模式下和8086的表现相同。比如下面这样:mov cx, 0x2000mov ds, cx原创 2020-09-15 21:50:46 · 1671 阅读 · 0 评论 -
X86保护模式(一)· 何为保护模式
在实模式下,用户程序对内存的访问十分自由,它可以访问1MB内的任何地址,任意修改其它程序的内存空间,也可以访问任何端口,这也意味着可以访问任何设备,诚然,这对于现代计算机来说,是一件非常危险的事情。在当下多用户多任务的背景下,内存中通常会有多个任务在同时运行,为了使他们彼此隔离,防止因某个用户程序的错误而影响其它程序甚至操作系统,引入保护模式是非常有必要的。...原创 2020-09-05 21:44:55 · 992 阅读 · 0 评论