开始前,如果不熟悉右边的知识点,建议先google: memory offsets, pointers
本节目标: 学习计算机的内存空间是如何分配,如何管理的。
请打开 这本书1的14页 ,看看图中的内存布局。
这节课的目标就是了解引导区的内容被加载到内存的什么位置。
BIOS将它启动引导区的内容放在0X7C00
,随后CPU从0x7C00(cs:ip = 0x7C00)开始执行指令,下面举一个例子:
我们想在屏幕上打印X,下面有4种不同的方式,让我们看看哪一个可行,并且思考为什么?
打开这个文件boot_sect_memory.asm
首先,在标签the_secret
处写入了’X’:
the_secret:
db "X"
然后,用不同的方法尝试访问the_secret
:
mov al, the_secret
mov al, [the_secret]
mov al, the_secret + 0x7C00
mov al, 2d + 0x7C00
,2d
是X在引导区的实际位置(从引导区开头数的字节数,比如之前写了1