就是 和 0xff 进行“按位与”运算 看结果为多少 |
201287zr 发表于 2021-8-4 17:57 我很久没用 Grub4Dos 了, 如果有类似 Debug 的 Dump 语法就很容易懂了. |
plusv 发表于 2021-8-4 17:36 谢谢指点,我再实际操作了下,是这样的: calc *0x82b8=0x1FF3F803F calc *0x82b9=0x1FF3F80 calc *0x82ba=0x1FF3F calc *0x82bb=0x1FF calc *0x82bc=0x1 只能看出具体含意的脉络,大概的意思该是差不多了,但0x1FF特别是0xFF的指向不明,一般磁头数为1是合理的,不会是255。FF应有特殊含义吧,而5个地址的字节数不一样,是程序内存就是这样吗?没有固定字节大小吗?我不懂编程,不知道是不是bug。 |
本帖最后由 plusv 于 2021-8-4 17:45 编辑 201287zr 发表于 2021-8-4 17:33 >我觉得0x82b9,如实际值为0x1FF3F803F 你不可这样解读, 你要解读 1 个字节. 0x82b9=3F. PS: >"我觉得0x82b9,如实际值为0x1FF3F803F" 意义是 0x82b8=?? 磁头数 0x82b9=3F 每磁道扇区数 0x82ba=80 真正驱动器号 0x82bb=3F 最大每磁道扇区数(低位) 0x82bc=FF 0x82bd=01 |
本帖最后由 201287zr 于 2021-8-4 17:39 编辑 plusv 发表于 2021-8-4 16:56 这样理解好像不对,以上面为例,*0x82b9=0x1FF3F80,我又试了下*0x82b8=0x1FF3F803F 对比发现,0x80代表的应是“真正驱动器号”,那高位的0x1FF3F,应分别代表“磁头数”、“每磁道扇区数”,但发现0x82B8是4字节,实际操作中得出的0x1FF3F803F明显是5个字节,对比后得出0x1FF3F803F:3F代表“最大每磁道扇区数”、“每磁道扇区数”?那高位的0x1FF是什么鬼?0x1代表的是磁头数,还多个字节出来,还是0x82b8不是4个字节?搞不懂 综上分析,我觉得0x82b9,如实际值为0x1FF3F803F,代表的意思可能是“0x1磁头数、0x3F每磁道扇区数、0x80真正驱动器号、0x3F最大每磁道扇区数(低位)”,但多出来的字节FF不知怎么理解。 |
201287zr 发表于 2021-8-4 17:23 我是依你的讯息解读的. 如果 格式 是 4 字节就不会得到 5 字节, 你要依格式取得每个字节的意思. 另外 *0x82b9=0x1FF3F80 *0x82b8=0x1FF3F803F *0x82b8=3F *0x82b9=80 |
plusv 发表于 2021-8-4 16:56 这样理解好像不对,以上面为例,*0x82b9=0x1FF3F80,我又试了下*0x82b8=0x1FF3F803F 对比发现,0x80代表的应是“真正驱动器号”,那高位的0x1FF3F,应分别代表“磁头数”、“每磁道扇区数”,但发现0x82B8是4字节,实际操作中得出的0x1FF3F803F明显是5个字节,对比后得出0x1FF3F803F:3F代表“每磁道扇区数”、“FF是磁头数”?那高位的0x1是什么鬼? |
plusv 发表于 2021-8-4 16:56 这样理解好像不对,以上面为例,*0x82b9=0x1FF3F80,我又试了下*0x82b8=0x1FF3F803F 对比发现,0x80代表的应是“真正驱动器号”,那高位的0x1FF3F,应分别代表“磁头数”、“每磁道扇区数”,但发现0x82B8是4字节,实际操作中得出的0x1FF3F803F明显是5个字节,对比后得出0x1FF3F803F:3F代表“每磁道扇区数”、“FF是磁头数”?那高位的0x1是什么鬼? |
2011yaya2007777 发表于 2021-8-4 16:49 感谢yaya大佬 回复。“ud启动时的盘符”是什么意思?以上面的为例,*0x82b9=335051532(16进制为0x1FF3F80),那高位0x1FF3F有没有具体含义呢(代表什么)? |
依你的讯息, 用直觉猜的. 0000:82B8 4字节(即双字) UD分区:磁头数,每磁道扇区数,真正驱动器号,最大每磁道扇区数(低位) 0000:82A0 4字节(即双字) 当前根所在的驱动器(current root drive) *0x82A0=*0x82b9&0xff 当前根所在的驱动器=0x80=hd0 82B8 4字节 表示: 82B8 磁头数 82B9 每磁道扇区数 82BA 真正驱动器号 82BB 最大每磁道扇区数(低位) |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.