实模式和保护模式

8086结构 x86架构中经典的处理器8086的大体结构如下: 其寻址范围为1M 为了暂存数据,8086 处理器内部有 8 个 16 位的通用寄存器,也就是刚才说的 CPU 内部的数据单元,分别是 AX、BX、CX、DX、SP、BP、SI、DI。这些寄存器主要用于在计算过程中暂存数据。这些寄存器比较灵活,其中 AX、BX、CX、DX 可以分成两个 8 位的寄存器来使用,分别是 AH、AL、BH、BL、CH、CL、DH、DL,其中 H 就是 High(高位),L 就是 Low(低位)的意思。 控制单元: IP 寄存器就是指令指针寄存器(Instruction Pointer Register),指向代码段中下一条指令的位置。CPU 会根据它来不断地将指令从内存的代码段中,加载到 CPU 的指令队列中,然后交给运算单元去执行。 如果需要切换进程,每个进程都分代码段和数据段,为了指向不同进程的地址空间,有四个 16 位的段寄存器,分别是 CS、DS、SS、ES。 其中,CS 就是代码段寄存器(Code Segment Register),通过它可以找到代码在内存中的位置;DS 是数据段的寄存器,通过它可以找到数据在内存中的位置。SS 是栈寄存器(Stack Register)。栈是程序运行中一个特殊的数据结构,数据的存取只能从一端进行,秉承后进先出的原则,push 就是入栈,pop 就是出栈。 存储起始地址的CS和DS都是16位的;存储偏移量的IP寄存器和通用寄存器都是16位的;但8086地址总线是20位的。如何从16位的寄存器寻址到20位的地址? 方法是:起始地址×16+偏移量,也就是把 CS 和 DS 中的值左移 4 位,变成 20 位的,加上 16 位的偏移量,这样就可以得到最终 20 位(1M)的数据地址。 32位处理器 32位处理器必须保持和原来处理器的兼容。 首先,通用寄存器有扩展,可以将 8 个 16 位的扩展到 8 个 32 位的,但是依然可以保留 16 位的和 8 位的使用方式。其中,指向下一条指令的指令指针寄存器 IP,就会扩展成 32 位的,同样也兼容 16 位的。...

July 19, 2022 · 1 min · 李昌

多出几个通用非即插即用显示器

1. 问题现象 莫名其妙,多出来几个显示器。 从设备管理器中看,也是存在多个通用非即插即用显示器2. 解决办法 重新安装Intel显卡驱动,可以从电脑厂家官网下载。但需要注意的一点是:在重新安装显卡驱动后,需要禁用显卡驱动程序的自动更新,否则还有可能出现这个问题。 打开组策略gpedit.msc,选择计算机配置”->“管理模板”->“系统”->“设备安装”->“设备安装限制”,找到Intel显卡的类Guid添加到阻止使用与下列设备安装程序类相匹配的驱动程序安装设备中

April 4, 2021 · 1 min · 李昌

Windows装系统遇到的问题

Windows装系统遇到的问题 1. 问题描述 windows无法安装到这个磁盘,选中的磁盘具有MBR分区表。在EFI系统上,Windows只能安装到GPT磁盘 2. 解决办法 首先选择U盘安装,进入安装界面 按shift+F10打开命令行 输入diskpart并回车 输入list disk查看磁盘,一般会出现两个磁盘,一个是机器本身的磁盘,编号为0,另一个为U盘,编号为1 输入select disk x(x为要选择的磁盘编号) cmd会提示当前选择的磁盘为x 执行clean命令清除该磁盘上所有分区信息,并且会清空所有硬盘数据 执行convert gpt,将该硬盘转化为GPT格式 完成,继续安装系统

February 25, 2021 · 1 min · 李昌