|
本帖最后由 201287zr 于 2021-8-4 16:21 编辑
最近正在学习grub4dos,看到grldr内置菜单中有这么一句不知什么作用:
if "%@root%"=="(ud)" && calc *0x82A0=*0x82b9&0xff
其中查了grub4dos中readme.txt以及搜了下论坛关于0x82B9的解释,并没有任何发现,不知道0x82b9是什么?
下面是README_GRUB4DOS_CN.txt中找到的其它“固定位置内部变量”的定义,但未见到0x82b9,只有0x82b8
******************************************************************************
*** 在固定位置访问一些内部变量 ***
******************************************************************************
地址 长度 说明
========= ======== ==============================================
0000:8208 4字节(即双字) 启动分区号 install_partition (the boot partition)
0000:8280 4字节(即双字) 启动驱动器号(boot_drive)
0000:8284 4字节(即双字) pxe 客户端 ip (即本地ip)
0000:8288 4字节(即双字) pxe 服务器 ip
0000:828C 4字节(即双字) pxe 网关 ip
0000:8290 8字节(即四字) 最后访问的文件的大小(是执行"cat --length=0"后的文件大小)
0000:8298 4字节(即双字) 从 1M 开始的连续内存块的大小(以 KB 为单位)
0000:829C 4字节(即双字) 当前根分区号(current root partition)
0000:82A0 4字节(即双字) 当前根所在的驱动器(current root drive)
0000:82A4 4字节(即双字) 解压标志 (gzip非自动解压),非0时不自动解压
0000:82A8 8字节(即四字) 最后访问的分区的起始扇区号
0000:82B0 8字节(即四字) 最后访问的分区的扇区总数
0000:82B8 4字节(即双字) UD分区:磁头数,每磁道扇区数,真正驱动器号,最大每磁道扇区数(低位)
0000:8278 4字节(即双字) GRUB4DOS编译的日期十进制数.
0000:82c0 8字节(即四字) 从 4G 开始的连续内存块的大小(以 KB 为单位)
=======
然后我实际操作查看了下0x82b9的值,但显示的是一个较大的数,如下图所示:*0x82b9=335051532(16进制为0x1FF3F80)
那么*0x82b9&0xff得到的值应该是0x80,也就是*0x82A0=0x80,代表当前根驱动设备是hd0。
但0x82B9代表的整个含义是什么呢?是每次低位都是0x80吗?,高位又代表什么含义呢?
不知chenall大神、不点大师、yaya大佬,可否指点一二,能否在更新说明中完善一下相关含义说明呢?
望各位论坛大哥指点一下。
|
|