无忧启动论坛

标题: 请教CALC只有数值是什么意思?(解决) [打印本页]

作者: icevan    时间: 2012-3-21 00:19
标题: 请教CALC只有数值是什么意思?(解决)
我查看HOTDLL的菜单时搞不明白里面的2条命令.
calc *0x8280 || chainloader /TANGO/03ONE && boot

这句是说前面的命令失败了就执行||后面的命令.但calc *0x8280这句是什么意思.我手动
执行后都会返回启动设备啊.什么情况下calc *0x8280才会失败呢?

calc *0x82b8 && calc *0x82b9&0xff || chainloader /TANGO/03ONE && boot
这句后面的calc倒是有个运算操作.不过前面的CALC还是不明白什么意思.

[ 本帖最后由 icevan 于 2012-3-21 15:49 编辑 ]
作者: zhaohj    时间: 2012-3-21 11:00
原则上讲,不建议使用calc *0x8280,因为calc是64位计算的,有可能产生负数。
一定要用calc,最好用32位:calc *0x8280&0xffffffff

作者的本意是:
checkrange 0 read 0x8280 && chainloader /TANGO/03ONE && boot
或者
checkrange 1:-1 read 0x8280 || chainloader /TANGO/03ONE && boot

[ 本帖最后由 zhaohj 于 2012-3-21 11:06 编辑 ]

Snap1.jpg (36 KB, 下载次数: 27)

Snap1.jpg

作者: icevan    时间: 2012-3-21 13:25
谢谢
还是是懂非懂的。你的意思是说这里calc *0x8280只是为了判断
那个位置有没有内容?
calc 数值 运算符 数值。
calc *0x8280这里他是省略了什么?
作者: sratlf    时间: 2012-3-21 14:11
标题: 回复 #3 icevan 的帖子
这个涉及到思路问题了

0x8280存放的是启动设备编号  比如fd0启动是0x0  ud启动是0x23  hdd启动是0x80等

command 1 || command 2 这个是命令1失败  执行命令2

这里如果0x8280值是0的话  那个calc 0 是会失败的  就会执行命令2

如果0x8280值不是0  命令1就不会失败  命令2就不会执行

也就是根据不同环境启动不同的引导文件

calc 一个值得时候  如果这个值是0或不存在  这条命令就会执行失败
作者: icevan    时间: 2012-3-21 15:50
谢谢楼上各位的解答。




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3