美文网首页
x86:从实模式到保护模式(简略笔记)

x86:从实模式到保护模式(简略笔记)

作者: 404notnotfound | 来源:发表于2018-02-06 09:34 被阅读0次

8086有20根地址线,但并非全部都用来访问DRAM(内存条).
BIOS为0xF0000~0xFFFFF
内存条为00000~0x9FFFF
显存为0xB8000~0xBFFFF:80*25,即25行,每行80个字符.
CPU加电后,第一条指令为0xFFFF0,因为除了CS=0外,其他寄存器都被置为0,这条指令刚好落在BIOS的地址空间上,指令为跳转指令jmp 0xf000:0xe05b.
在ROM-BIOS完成自己的使命之前,最后要做的一件事是从外存(硬盘)中读取更多的指令来交给处理器执行.从硬盘哪里呢?

第0面0道1扇区 -- Page 49

这个扇区称为主引导扇区(Man Boot Sector, MBR),会被加载到内存0x0000:0x7c00处,之后用一个跳转指令 jmp 0x0000:0x7c00来跳到那里接着执行.
一个有效的主引导扇区,其最后两个字节的数据必须是 0x550xAA

各种指令对标志位的影响
指令 对标志位的影响
add OF,SF,ZF,AF,CF,PF
and OF=0,CF=0; SF,ZF,PF
cbw NO
cld DF=0; CF,OF,ZF,SF,AF,PF未定义
cwd NO
dec 不影响CF; 影响OF,SF,ZF,AF,PF
div/idiv 未定义CF,OF,SF,ZF,AF,PF
inc CF不受影响,影响OF,SF,ZF,AF,PF
mov/movs NO
neg CF,OF,SF,ZF,AF,PF
std DF=1
sub OF,SF,ZF,AF,PF,CF
xor OF=0,CF=0; 影响SF,ZF,PF,未定义AF
用户程序头部起码要包含以下信息:
  1. 用户程序的尺寸,即以字节为单位的大小.
  2. 应用程序的入口点,包括段地址偏移地址.
  3. 段重定位表.

处理IO设备的冲突,使用输入输出控制设备集中器(I/O Controller Hub, ICH)芯片,该芯片的作用是连接不同的总线,并协调各个I/O接口对处理器的访问.在PC上,这块芯片就是所谓的南桥.

8.3.5 通过硬盘控制器端口读扇区数据-P133

硬盘读写的基本单位是扇区。就是说,要读就至少读一个扇区,要写就至少写一个扇区,不可
能仅读写一个扇区中的几个字节。这样一来,就使得主机和硬盘之间的数据交换是成块的,所以硬
盘是典型的块设备。
从硬盘读写数据,最经典的方式是向硬盘控制器分别发送磁头号、柱面号和扇区号(扇区在某个柱面上的编号),这称为 CHS 模式
实际上,在很多时候,我们并不关心扇区的物理位置,所以希望所有的扇区都能统一编址。这
就是逻辑扇区,它把硬盘上所有可用的扇区都一一从 0 编号,而不管它位于哪个盘面,也不管它属
于哪个柱面。
个人计算机上的主硬盘控制器被分配了 8 位端口,端口号从 0x1f0 到 0x1f7

0x0d是回车,0x0a 是换行。

回车和换行的概念最早起源于老式打字机。那种打字机上有滚筒,用于使纸张上下卷动,每敲击一个按键,字车往右移动一格,位于下一个可打印的位置。在这种古老而不失先进性的设备上,将字车推到最左边,也就是一行的开始,叫做回车(Carriage Return);而拧一下滚筒,将纸上卷一行,叫做换行(Line Feed)。如果既回车,又换行,那么,字车将位于下一行的行首。这个过程通常叫做回车换行(CRLF)。------------------------P149

8.4.4 屏幕光标控制

非屏蔽中断(Non Maskable Interrupt,NMI)
Intel 处理器规定,NMI 中断信号由0 跳变到 1 后,至少要维持4个以上的时钟周期才算是有效的,才能被识别。

CMOS RAM --P165

RTC:集成了实时时钟电路(Real Time Clock,RTC)相关API在Page165

处理器在设计的时候就规定,当遇到修改段寄存器 SS 的指令时,在这条指令和下一条指令执行完毕期间,禁止中断,以此来保护堆栈。(P170)

相关文章

网友评论

      本文标题:x86:从实模式到保护模式(简略笔记)

      本文链接:https://www.haomeiwen.com/subject/zygbzxtx.html