微比恩 > 信息聚合 > Linux 0.11 第 2 回 | 从 0x7c00 到 0x90000

Linux 0.11 第 2 回 | 从 0x7c00 到 0x90000

2022-09-30 20:02:30来源: IT之家

本文来自微信公众号:低并发编程 (ID:dibingfa),作者:闪客书接上回,上回书咱们说到,CPU 执行操作系统的最开始的两行代码。mov ax,0x07c0 mov ds,ax将数据段寄存器 ds 的值变成了 0x07c0,方便了之后访问内存时利用这个段基址进行寻址。接下来我们带着这两行代码,继续往下看几行。mov ax,0x07c0 mov ds,ax mov ax,0x9000 mov es,ax mov cx,#256 sub si,si sub di,di rep movw此时 ds 寄存器的值已经是 0x07c0 了,然后又通过同样的方式将 es寄存器的值变成 0x9000,接着又把 cx寄存器的值变成 256(代码里确实是用十进制表示的,与其他地方有些不一致,不过无所谓)。再往下看有两个 sub 指令,这个 su

关注公众号
标签: Linux