You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自制操作系统适配VESA模式时的视频模式指针操作逻辑疑问

VESA模式设置代码疑问解答

以下是两处代码逻辑的具体解释:

  • 关于远指针拆分的逻辑:
    x86实模式下的4字节远指针遵循小端存储规则,低2位字节存储偏移量,高2位字节存储段地址,VBE规范中vbe_info_block的video_modes字段正是标准的实模式远指针。代码中先取vbe_info_block.video_modes的首2字节作为偏移量,再取偏移2字节后的2字节作为段地址,完全符合该存储规范,只有正确拆分远指针的段和偏移部分,才能计算出模式列表所在的真实内存地址,完成后续遍历操作。
  • 关于si寄存器加2的逻辑:
    VBE返回的视频模式列表是连续的16位无符号整数序列,每个整数对应一个VESA模式号,占2字节内存空间,列表末尾用0xFFFF作为终止标记。每次从fs:si地址读取一个16位的模式号到dx寄存器后,si自然要向后移动2字节,才能指向下一个模式号的起始位置,实现遍历整个模式列表的逻辑。

内容的提问来源于stack exchange,提问作者Aidan White

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:36:04